Analyseur XML
Tous les principaux navigateurs ont un analyseur XML intégré pour accéder et manipuler XML.
Analyseur XML
Le DOM XML (Document Object Model) définit les propriétés et les méthodes d'accès et d'édition XML.
Cependant, avant qu'un document XML soit accessible, il doit être chargé dans un objet DOM XML.
Tous les navigateurs modernes ont un analyseur XML intégré qui peut convertir du texte en un objet DOM XML.
Analyser une chaîne de texte
Cet exemple analyse une chaîne de texte dans un objet DOM XML et en extrait les informations avec JavaScript :
Exemple
<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>
Exemple expliqué
Une chaîne de texte est définie :
text = "<bookstore><book>" +
"<title>Everyday Italian</title>" +
"<author>Giada De Laurentiis</author>" +
"<year>2005</year>" +
"</book></bookstore>";
Un analyseur XML DOM est créé :
parser = new DOMParser();
L'analyseur crée un nouvel objet DOM XML à l'aide de la chaîne de texte :
xmlDoc = parser.parseFromString(text,"text/xml");
Anciennes versions d'Internet Explorer
Les anciennes versions d'Internet Explorer (IE5, IE6, IE7, IE8) ne prennent pas en charge l'objet DOMParser.
Pour gérer les anciennes versions d'Internet Explorer, vérifiez si le navigateur supporte l'objet DOMParser, ou bien créez un ActiveXObject :
Exemple
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'objet XMLHttpRequest
L' objet XMLHttpRequest a un analyseur XML intégré.
La propriété responseText renvoie la réponse sous forme de chaîne.
La propriété responseXML renvoie la réponse sous la forme d'un objet DOM XML.
Si vous souhaitez utiliser la réponse en tant qu'objet DOM XML, vous pouvez utiliser la propriété responseXML.
Exemple
Demandez le fichier cd_catalog.xml et utilisez la réponse en tant qu'objet 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;