Web Services, Part VI: XML Parsing and Loading from JavaScript: Error Reporting during XML Parsing - Doc JavaScript | WebReference

Web Services, Part VI: XML Parsing and Loading from JavaScript: Error Reporting during XML Parsing - Doc JavaScript


Web Services, Part VI: XML Parsing and Loading from JavaScript

Error Reporting during XML Parsing

The DOMDocument's parseError property returns an IXMLDOMParseError object that contains information about the last parsing error. The object's properties are:

As you can see, you get a wealth of information when a parsing error occurrs. Let's take our mydvd.xml file and introduce a syntax error in it. Let's change the line before the last from </data> to <data>. Let's write out the new XML file to a different file, say mydvdwitherror.xml, and now try reading it. An alert box will pop up and echo the IXMLDOMParseError object's properties. Here is the load() function that invokes the alert box:

function load() {
  var xmldoc;
  xmldoc = new ActiveXObject("Msxml2.DOMDocument.3.0");
  xmldoc.async = false;
  xmldoc.load("mydvdwitherror.xml");
  if (xmldoc.parseError.errorCode != 0) {
    alert("errorCode: " + xmldoc.parseError.errorCode + "\n" +
          "filepos: " + xmldoc.parseError.filepos + "\n" +
          "line: " + xmldoc.parseError.line + "\n" +
          "linepos: " + xmldoc.parseError.linepos + "\n" +
          "reason: " + xmldoc.parseError.reason + "\n" +
          "srcText: " + xmldoc.parseError.srcText + "\n" +
          "url: " + xmldoc.parseError.url);
  } else {
      alert(xmlDoc.documentElement.xml);
    }
}

Here is the XML file with the error:

&lt?xml version="1.0"?>
&lt?xml-stylesheet type="text/xsl" href="mydvd.xsl"?>
  &ltsales>
    &ltsummary>
      &ltheading>MyDVD Rental Store&lt/heading>
      &ltsubhead>Periodical Sales Report&lt/subhead>
      &ltdescription>Sales Report for January, February,
        and March of 2001&lt/description>
    &lt/summary>
    &ltdata>
      &ltmonth>
        &ltname>January 2001&lt/name>
        &ltweek number="1" dvds_rented="12000" />
        &ltweek number="2" dvds_rented="15000" />
        &ltweek number="3" dvds_rented="18000" />
        &ltweek number="4" dvds_rented="11800" />
      &lt/month>
      &ltmonth>
        &ltname>February 2001&lt/name>
        &ltweek number="1" dvds_rented="11500" />
        &ltweek number="2" dvds_rented="12390" />
        &ltweek number="3" dvds_rented="19050" />
        &ltweek number="4" dvds_rented="11200" />
      &lt/month>
      &ltmonth>
        &ltname>March 2001&lt/name>
        &ltweek number="1" dvds_rented="15300" />
        &ltweek number="2" dvds_rented="12390" />
        &ltweek number="3" dvds_rented="10050" />
        &ltweek number="4" dvds_rented="11230" />
      &lt/month>
    &ltdata>
  &lt/sales>

Let your browser read the file now, and see which of the above information is used to show you where the error is. See how the browser shows you graphically the location of the error (position 5 in line 32).


Next: A Final Word

http://www.internet.com


Produced by Yehuda Shiran and Tomer Shiran
All Rights Reserved. Legal Notices.
Created: January 14, 2002
Revised: January 14, 2002

URL: http://www.webreference.com/js/column101/5.html