XML-Parser
Alle gängigen Browser verfügen über einen integrierten XML-Parser, um auf XML zuzugreifen und es zu bearbeiten.
XML-Parser
Das XML DOM (Document Object Model) definiert die Eigenschaften und Methoden für den Zugriff auf und die Bearbeitung von XML.
Bevor jedoch auf ein XML-Dokument zugegriffen werden kann, muss es in ein XML-DOM-Objekt geladen werden.
Alle modernen Browser verfügen über einen integrierten XML-Parser, der Text in ein XML-DOM-Objekt umwandeln kann.
Analysieren einer Textzeichenfolge
Dieses Beispiel parst eine Textzeichenfolge in ein XML-DOM-Objekt und extrahiert die Informationen daraus mit JavaScript:
Beispiel
<html>
<body>
<p id="demo"></p>
<script>
var text, parser, xmlDoc;
text = "<bookstore><book>" +
"<title>Everyday Italian</title>" +
"<author>Giada De Laurentiis</author>" +
"<year>2005</year>" +
"</book></bookstore>";
parser = new DOMParser();
xmlDoc = parser.parseFromString(text,"text/xml");
document.getElementById("demo").innerHTML =
xmlDoc.getElementsByTagName("title")[0].childNodes[0].nodeValue;
</script>
</body>
</html>
Beispiel erklärt
Eine Textzeichenfolge wird definiert:
text = "<bookstore><book>" +
"<title>Everyday Italian</title>" +
"<author>Giada De Laurentiis</author>" +
"<year>2005</year>" +
"</book></bookstore>";
Ein XML-DOM-Parser wird erstellt:
parser = new DOMParser();
Der Parser erstellt mithilfe der Textzeichenfolge ein neues XML-DOM-Objekt:
xmlDoc = parser.parseFromString(text,"text/xml");
Alte Versionen des Internet Explorers
Alte Versionen von Internet Explorer (IE5, IE6, IE7, IE8) unterstützen das DOMParser-Objekt nicht.
Um mit älteren Versionen von Internet Explorer umzugehen, überprüfen Sie, ob der Browser das DOMParser-Objekt unterstützt, oder erstellen Sie ein ActiveXObject:
Beispiel
if (window.DOMParser) {
// code for modern browsers
parser = new DOMParser();
xmlDoc = parser.parseFromString(text,"text/xml");
}
else {
// code for old IE browsers
xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async = false;
xmlDoc.loadXML(text);
}
Das XMLHttpRequest-Objekt
Das XMLHttpRequest-Objekt hat einen eingebauten XML-Parser.
Die Eigenschaft responseText gibt die Antwort als Zeichenfolge zurück.
Die Eigenschaft responseXML gibt die Antwort als XML-DOM-Objekt zurück.
Wenn Sie die Antwort als XML-DOM-Objekt verwenden möchten, können Sie die Eigenschaft responseXML verwenden.
Beispiel
Fordern Sie die Datei cd_catalog.xml an und verwenden Sie die Antwort als XML-DOM-Objekt:
xmlDoc = xmlhttp.responseXML;
txt = "";
x = xmlDoc.getElementsByTagName("ARTIST");
for (i = 0; i < x.length; i++) {
txt += x[i].childNodes[0].nodeValue + "<br>";
}
document.getElementById("demo").innerHTML = txt;