Exemple XML
Exemple avec un fichier XML
Exemple AJAX de gestion de réponse de requête HTTP avec la propriété "responseXML" sur un fichier XML.
Travailler avec des réponses XML. Dans l'exemple précédent, après la réception de la réponse à la requête HTTP, nous avons utilisé la propriété responseText de l'objet de requête, qui contient le contenu du fichier texte.txt. Essayons maintenant la propriété responseXML.
Tout d'abord, créons un document XML valide (test.xml) qui sera l'objet de la requête:
Document XML (test.xml)
<?xml version="1.0" ?>
<root>
Je suis un test.
</root>
<?xml version="1.0" ?>
<root>
Je suis un test.
</root>
Attention, problème si accents (comme dans in alert).
Dans le script, il est juste nécessaire de remplacer la ligne de requête par :
Changement du script précédent (body de index.htm)
...
onclick="fairerequete('test.xml')">
...
...
onclick="fairerequete('test.xml')">
...
Ensuite, dans contenu_du_alert(), il faut remplacer le alert(xhr.responseText); par :
Changement du script précédent (dans fonction contenu_du_alert)
// la proriété responseXML permet d'obtenir la réponse sous forme d'objet DOM
var docxml = xhr.responseXML;
// récupère le premier noeud 'root' rencontré (getElementsByTagName est un array)
var noeud_root = docxml.getElementsByTagName('root')[0];
// Affiche la valeur de son noeud enfant (ici le texte contenu dans root)
alert(noeud_root.firstChild.nodeValue);
// la proriété responseXML permet d'obtenir la réponse sous forme d'objet DOM
var docxml = xhr.responseXML;
// récupère le premier noeud 'root' rencontré (getElementsByTagName est un array)
var noeud_root = docxml.getElementsByTagName('root')[0];
// Affiche la valeur de son noeud enfant (ici le texte contenu dans root)
alert(noeud_root.firstChild.nodeValue);
De cette façon, nous avons pris l'objet XML donné par responseXML et nous avons utilisé des méthodes DOM pour accéder à certaines données contenues dans le document XML. Note: la dernière ligne peut être remplacée par: noeud_root.childNodes[1].fistChild.data