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:
errorCode
. Code number of the error. A zero value means there was no error. Numbers are negative numbers close to the smallest integer allowed.filepos
. The absolute file position where the error occurred.line
. The line number where the error occurred.linepos
. The character position within the line where the error occurred.reason
. Explains the reason of the error.srcText
. The full text of the line where the error occurred.url
. The URL of the XML file where the last parsing error occurred.
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:
<?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="mydvd.xsl"?> <sales> <summary> <heading>MyDVD Rental Store</heading> <subhead>Periodical Sales Report</subhead> <description>Sales Report for January, February, and March of 2001</description> </summary> <data> <month> <name>January 2001</name> <week number="1" dvds_rented="12000" /> <week number="2" dvds_rented="15000" /> <week number="3" dvds_rented="18000" /> <week number="4" dvds_rented="11800" /> </month> <month> <name>February 2001</name> <week number="1" dvds_rented="11500" /> <week number="2" dvds_rented="12390" /> <week number="3" dvds_rented="19050" /> <week number="4" dvds_rented="11200" /> </month> <month> <name>March 2001</name> <week number="1" dvds_rented="15300" /> <week number="2" dvds_rented="12390" /> <week number="3" dvds_rented="10050" /> <week number="4" dvds_rented="11230" /> </month> <data> </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
Produced by Yehuda Shiran and Tomer Shiran
All Rights Reserved. Legal Notices.
Created: January 14, 2002
Revised: January 14, 2002
URL: https://www.webreference.com/js/column101/5.html