XML-DOM Parserfehler
Wenn Firefox auf einen Parserfehler stößt, lädt er ein XML-Dokument, das den Fehler enthält.
Parserfehler in Firefox
Ein Parserfehler kann auftreten, wenn Sie versuchen, ein XML-Dokument zu öffnen.
Im Gegensatz zu Internet Explorer lädt Firefox, wenn er auf einen Fehler stößt, ein XML-Dokument, das die Fehlerbeschreibung enthält.
Der Wurzelknoten des XML-Fehlerdokuments heißt "parsererror". Dies wird verwendet, um zu prüfen, ob ein Fehler vorliegt.
XML-Fehler (XML-Fehler)
Im folgenden Code lassen wir den Parser ein fehlerhaftes XML-Dokument laden.
(In unseremXML-Tutorialkönnen Sie mehr über wohlgeformtes und gültiges XML in ... lesen)
Beispiel
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 ist gültig");
}
Selbst ausprobieren »
XML-Datei anzeigen:note_error.xml
Beispielerklärung:
- XML-Datei laden
- Überprüfen, ob der Knotenname des Wurzelknotens "parsererror" ist
- Fehlerzeichenfolge in die Variable "errStr" laden
- Bevor der Fehler als HTML geschrieben wird, das Zeichen "<" durch "<" ersetzen
Hinweis:Tatsächlich verwendet nur Internet Explorer eine DTD, um Ihr XML zu prüfen; Firefox nicht.
Browserübergreifende Fehlerprüfung
Hier haben wir eine XML-Ladefunktion erstellt, die in Internet Explorer und Firefox auf Parserfehler prüft:
Beispiel
{
try //Internet Explorer
{
xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async=false;
xmlDoc.load(dname);
if (xmlDoc.parseError.errorCode != 0)
{
alert("Fehler in Zeile " + xmlDoc.parseError.line +
" Position " + xmlDoc.parseError.linePos +
"nFehlercode: " + xmlDoc.parseError.errorCode +
"nFehlergrund: " + xmlDoc.parseError.reason +
"Fehlerzeile: " + 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);
}
Selbst ausprobieren »
XML-Datei anzeigen:note_error.xml
Beispielerklärung – Internet Explorer:
- Die erste Zeile erstellt ein leeres Microsoft-XML-Dokumentobjekt.
- Die zweite Zeile schaltet das asynchrone Laden aus, wodurch sichergestellt wird, dass der Parser nicht weiter Skripte ausführt, bevor das Dokument vollständig geladen ist.
- Die dritte Zeile weist den Parser an, das XML-Dokument mit dem Namen "note_error.xml" zu laden.
- Wenn die ErrorCode-Eigenschaft des parseError-Objekts von "0" abweicht, den Fehler melden und die Funktion beenden.
- Wenn die ErrorCode-Eigenschaft "0" ist, das XML-Dokument zurückgeben.
Beispielerklärung – Firefox:
- Die erste Zeile erstellt ein leeres XML-Dokumentobjekt.
- Die zweite Zeile schaltet das asynchrone Laden aus, wodurch sichergestellt wird, dass der Parser nicht weiter Skripte ausführt, bevor das Dokument vollständig geladen ist.
- Die dritte Zeile weist den Parser an, das XML-Dokument mit dem Namen "note_error.xml" zu laden.
- Wenn das zurückgegebene Dokument ein Fehlerdokument ist, den Fehler melden und die Funktion beenden.
- Wenn nicht, das XML-Dokument zurückgeben.
Weitere Erweiterungen