XML-parser
Alle belangrijke browsers hebben een ingebouwde XML-parser om XML te openen en te manipuleren.
XML-parser
Het XML DOM (Document Object Model) definieert de eigenschappen en methoden voor het openen en bewerken van XML.
Voordat toegang tot een XML-document kan worden verkregen, moet het echter in een XML DOM-object worden geladen.
Alle moderne browsers hebben een ingebouwde XML-parser die tekst kan converteren naar een XML DOM-object.
Een tekstreeks ontleden
In dit voorbeeld wordt een tekenreeks geparseerd in een XML DOM-object en wordt de informatie eruit geëxtraheerd met JavaScript:
Voorbeeld
<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>
Voorbeeld uitgelegd
Er wordt een tekenreeks gedefinieerd:
text = "<bookstore><book>" +
"<title>Everyday Italian</title>" +
"<author>Giada De Laurentiis</author>" +
"<year>2005</year>" +
"</book></bookstore>";
Er wordt een XML DOM-parser gemaakt:
parser = new DOMParser();
De parser maakt een nieuw XML DOM-object met behulp van de tekenreeks:
xmlDoc = parser.parseFromString(text,"text/xml");
Oude versies van Internet Explorer
Oude versies van Internet Explorer (IE5, IE6, IE7, IE8) ondersteunen het DOMParser-object niet.
Als u oudere versies van Internet Explorer wilt gebruiken, controleert u of de browser het DOMParser-object ondersteunt of maakt u een ActiveXObject:
Voorbeeld
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);
}
Het XMLHttpRequest-object
Het XMLHttpRequest-object heeft een ingebouwde XML-parser.
De eigenschap responseText retourneert het antwoord als een tekenreeks.
De eigenschap responseXML retourneert het antwoord als een XML DOM-object.
Als u het antwoord als een XML DOM-object wilt gebruiken, kunt u de eigenschap responseXML gebruiken.
Voorbeeld
Vraag het bestand cd_catalog.xml aan en gebruik het antwoord als een XML DOM-object:
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;