From http://www.w3schools.com (Copyright Refsnes Data)
When Firefox encounter a parser error, it loads an XML document containing the error
When trying to open an XML document, a parser-error may occur.
Unlike Internet Explorer, if Firefox encounters an error, it loads an XML document containing the error description.
The root node name of the XML error document is "parsererror". This is used to check if there is an error.
In the following code we let the parser load an XML document that is not well-formed.
(You can read more about well-formed and valid XML in our XML tutorial)
xmlDoc=document.implementation.createDocument("","",null); xmlDoc.async=false; xmlDoc.load("note_error.xml"); if (xmlDoc.documentElement.nodeName=="parsererror") { errStr=xmlDoc.documentElement.childNodes[0].nodeValue; errStr=errStr.replace(/</g, "<"); document.write(errStr); } else { document.write("XML is valid"); } |
Example explained:
Try it yourself or just look at the XML file
Note: Only Internet Explorer will actually check your XML against the DTD. Firefox will not.
Here we have created an XML load function that checks for parser errors in both Internet Explorer and Firefox:
function loadXMLDocErr(dname) { try //Internet Explorer { xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); xmlDoc.async=false; xmlDoc.load(dname); if (xmlDoc.parseError.errorCode != 0) { alert("Error in line " + xmlDoc.parseError.line + " position " + xmlDoc.parseError.linePos + "\nError Code: " + xmlDoc.parseError.errorCode + "\nError Reason: " + xmlDoc.parseError.reason + "Error Line: " + xmlDoc.parseError.srcText); return(null); } } catch(e) { try //Firefox { xmlDoc=document.implementation.createDocument("","",null); xmlDoc.async=false; xmlDoc.load(dname); if (xmlDoc.documentElement.nodeName=="parsererror") { alert(xmlDoc.documentElement.childNodes[0].nodeValue); return(null); } } catch(e) {alert(e.message)} } try { return(xmlDoc); } catch(e) {alert(e.message)} return(null); } |
Example explained - Internet Explorer:
Example explained - Firefox:
Try it yourself
or just look at the XML file
From http://www.w3schools.com (Copyright Refsnes Data)