XML Parser
Všechny hlavní prohlížeče mají vestavěný analyzátor XML pro přístup a manipulaci s XML.
XML Parser
XML DOM (Document Object Model) definuje vlastnosti a metody pro přístup a úpravu XML.
Než však bude možné přistupovat k dokumentu XML, musí být načten do objektu XML DOM.
Všechny moderní prohlížeče mají vestavěný analyzátor XML, který dokáže převést text na objekt XML DOM.
Analýza textového řetězce
Tento příklad analyzuje textový řetězec do objektu XML DOM a extrahuje z něj informace pomocí JavaScriptu:
Příklad
<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>
Příklad vysvětlen
Je definován textový řetězec:
text = "<bookstore><book>" +
"<title>Everyday Italian</title>" +
"<author>Giada De Laurentiis</author>" +
"<year>2005</year>" +
"</book></bookstore>";
Vytvoří se analyzátor XML DOM:
parser = new DOMParser();
Analyzátor vytvoří nový objekt XML DOM pomocí textového řetězce:
xmlDoc = parser.parseFromString(text,"text/xml");
Staré verze Internet Exploreru
Staré verze Internet Exploreru (IE5, IE6, IE7, IE8) nepodporují objekt DOMParser.
Chcete-li pracovat se staršími verzemi aplikace Internet Explorer, zkontrolujte, zda prohlížeč podporuje objekt DOMParser, nebo vytvořte objekt ActiveX:
Příklad
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);
}
Objekt XMLHttpRequest
Objekt XMLHttpRequest má vestavěný XML Parser.
Vlastnost responseText vrací odpověď jako řetězec.
Vlastnost responseXML vrací odpověď jako objekt XML DOM.
Pokud chcete použít odpověď jako objekt XML DOM, můžete použít vlastnost responseXML.
Příklad
Vyžádejte si soubor cd_catalog.xml a použijte odpověď jako objekt XML DOM:
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;