Analizzatore XML

Tutti i browser principali hanno un parser XML integrato, utilizzato per accedere e manipolare XML.

Il parser trasforma l'XML in un oggetto XML DOM - un oggetto che può essere manipolato con JavaScript.

Analizzatore XML

XML DOM (Document Object Model)Sono definiti attributi e metodi per accedere e modificare l'XML.

Tuttavia, prima di accedere al documento XML, deve essere caricato in un oggetto XML DOM.

Tutti i browser moderni forniscono un parser XML integrato che può convertire il testo in un oggetto XML DOM.

Analizzare la stringa di testo

Questo esempio trasforma una stringa di testo in un oggetto XML DOM e utilizza JavaScript per estrarre informazioni da esso:

esempio

<html>
<body>
<p id="demo"></p>
<script>
var text, parser, xmlDoc;
text = "<bookstore><book>"
"<title>雅舍谈吃</title>" +
"<author>梁实秋</author>" +
"<year>2013</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>

Prova personalmente

Esempio di spiegazione

Definire la stringa di testo:

text = "<bookstore><book>"
"<title>雅舍谈吃</title>" +
"<author>梁实秋</author>" +
"<year>2013</year>" +
"</book></bookstore>"

Creare un parser XML DOM:

parser = new DOMParser();

Il parser ha creato un nuovo oggetto XML DOM utilizzando questa stringa di testo:

xmlDoc = parser.parseFromString(text,"text/xml");

oggetto XMLHttpRequest

oggetto XMLHttpRequestfornisce un parser XML integrato.

responseText proprietà per restituire la risposta in forma di stringa.

responseXML proprietà per restituire la risposta in forma di oggetto XML DOM.

Se si desidera utilizzare la risposta come oggetto XML DOM, è possibile utilizzare responseXML proprietà.

esempio

richiesta del file cd_catalog.xml,ecco l'oggetto XML DOM da utilizzare:

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;

Prova personalmente