Parser XML
Wszystkie główne przeglądarki mają wbudowany parser XML, aby uzyskać dostęp do XML i manipulować nim.
Parser XML
XML DOM (Document Object Model) definiuje właściwości i metody dostępu i edycji XML.
Jednak zanim będzie można uzyskać dostęp do dokumentu XML, należy go załadować do obiektu XML DOM.
Wszystkie nowoczesne przeglądarki mają wbudowany parser XML, który może konwertować tekst na obiekt XML DOM.
Parsowanie ciągu tekstowego
Ten przykład analizuje ciąg tekstowy do obiektu XML DOM i wyodrębnia z niego informacje za pomocą JavaScript:
Przykład
<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>
Przykład wyjaśniony
Ciąg tekstowy jest zdefiniowany:
text = "<bookstore><book>" +
"<title>Everyday Italian</title>" +
"<author>Giada De Laurentiis</author>" +
"<year>2005</year>" +
"</book></bookstore>";
Tworzony jest parser XML DOM:
parser = new DOMParser();
Parser tworzy nowy obiekt XML DOM przy użyciu ciągu tekstowego:
xmlDoc = parser.parseFromString(text,"text/xml");
Stare wersje Internet Explorera
Stare wersje Internet Explorera (IE5, IE6, IE7, IE8) nie obsługują obiektu DOMParser.
Aby obsługiwać starsze wersje Internet Explorera, sprawdź, czy przeglądarka obsługuje obiekt DOMParser, lub utwórz obiekt ActiveXObject:
Przykład
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);
}
Obiekt XMLHttpRequest
Obiekt XMLHttpRequest ma wbudowany parser XML.
Właściwość responseText zwraca odpowiedź w postaci ciągu.
Właściwość responseXML zwraca odpowiedź jako obiekt XML DOM.
Jeśli chcesz użyć odpowiedzi jako obiektu XML DOM, możesz użyć właściwości responseXML.
Przykład
Poproś o plik cd_catalog.xml i użyj odpowiedzi jako obiektu 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;