Latest web development tutorials

Błąd XML parser DOM

Gdy Firefox parser napotka błąd, to załadować dokument XML, który zawiera błąd.


Błąd składni w Firefoksie

Podczas próby otwarcia dokumentu XML, to może wystąpić błąd składni (parser error).

I przeglądarek Internet Explorer, Firefox, jeśli napotka błąd, ładuje dokument XML zawierający błąd opisany.

Błąd XML nazwa głównego dokumentu jest "parsererror". Służy do sprawdzania błędów.


Błąd XML (XML Error)

W poniższym kodzie, niech będzie parser załadować złą formę dokumentów XML.

(Można w naszym poradniku XML Więcej o dobrą i skuteczną formę XML).

Przykłady

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, "&lt;");
document.write(errStr);
}
else
{
document.write("XML is valid");
}

Spróbuj »

Zobacz plik XML: note_error.xml

Przykłady wyjaśnić:

  1. Ładowanie pliku XML
  2. Sprawdź, czy nazwa węzła głównego jest "parsererror"
  3. Błąd Ciąg zmiennej loading "errstr"
  4. Przed ciąg błędu jest napisane w HTML, znak "<" zastępuje się wyrazami "& lt;"

Uwaga: W rzeczywistości, tylko Internet Explorer sprawdzi XML z DTD, Firefox nie będzie.


sprawdzanie błędów cross-browser

Tutaj możemy utworzyć funkcję ładowarka XML parser sprawdzić błąd w Internet Explorer i Firefox:

Przykłady

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);
}

Spróbuj »

Zobacz plik XML: note_error.xml

Przykłady wyjaśnić - Internet Explorer:

  1. Pierwsza linia tworzy pusty obiekt dokumentu programu Microsoft XML.
  2. Druga linia wyłącza asynchroniczne ładowanie, aby upewnić się, że parser nie będzie kontynuować wykonywanie skryptu, zanim dokument zostanie w pełni załadowany.
  3. Trzecia linia mówi parser, aby załadować dokument XML o nazwie "note_error.xml" z.
  4. Jeżeli przedmiot nieruchomość ErrorCode parseError i "0" jest inny, i przypomnieć niewłaściwy zjazd.
  5. Jeżeli nieruchomość ErrorCode na "0", i zwraca dokument XML.

Przykłady wyjaśnić - Firefox:

  1. Pierwsza linia tworzy pusty obiekt dokumentu XML.
  2. Druga linia wyłącza asynchroniczne ładowanie, aby upewnić się, że parser nie będzie kontynuować wykonywanie skryptu, zanim dokument zostanie w pełni załadowany.
  3. Trzecia linia mówi parser, aby załadować dokument XML o nazwie "note_error.xml" z.
  4. Jeśli zwrot dokumentu jest fałszywym dokumentem, przypominając błąd i kończy działanie.
  5. Jeśli nie, to zwraca dokument XML.