Analizzatore XML
Tutti i principali browser hanno un parser XML integrato per accedere e manipolare XML.
Analizzatore XML
L' XML DOM (Document Object Model) definisce le proprietà ei metodi per l'accesso e la modifica di XML.
Tuttavia, prima di poter accedere a un documento XML, è necessario caricarlo in un oggetto DOM XML.
Tutti i browser moderni hanno un parser XML integrato in grado di convertire il testo in un oggetto DOM XML.
Analisi di una stringa di testo
Questo esempio analizza una stringa di testo in un oggetto DOM XML ed estrae le informazioni da esso con JavaScript:
Esempio
<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>
Esempio spiegato
Viene definita una stringa di testo:
text = "<bookstore><book>" +
"<title>Everyday Italian</title>" +
"<author>Giada De Laurentiis</author>" +
"<year>2005</year>" +
"</book></bookstore>";
Viene creato un parser DOM XML:
parser = new DOMParser();
Il parser crea un nuovo oggetto DOM XML utilizzando la stringa di testo:
xmlDoc = parser.parseFromString(text,"text/xml");
Vecchie versioni di Internet Explorer
Le versioni precedenti di Internet Explorer (IE5, IE6, IE7, IE8) non supportano l'oggetto DOMPaser.
Per gestire le versioni precedenti di Internet Explorer, controlla se il browser supporta l'oggetto DOMPaser, oppure crea un ActiveXObject:
Esempio
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);
}
L'oggetto XMLHttpRequest
L' oggetto XMLHttpRequest ha un parser XML integrato.
La proprietà responseText restituisce la risposta come stringa.
La proprietà responseXML restituisce la risposta come oggetto DOM XML.
Se desideri utilizzare la risposta come oggetto DOM XML, puoi utilizzare la proprietà responseXML.
Esempio
Richiedi il file cd_catalog.xml e utilizza la risposta come oggetto DOM XML:
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;