Analyseur PHP XML DOM
L'analyseur DOM intégré permet de traiter des documents XML en PHP.
L'analyseur XML DOM
L'analyseur DOM est un analyseur arborescent.
Regardez la fraction de document XML suivante :
<?xml version="1.0" encoding="UTF-8"?>
<from>Jani</from>
Le DOM voit le XML ci-dessus comme une structure arborescente :
- Niveau 1 : Document XML
- Niveau 2 : élément racine : <from>
- Niveau 3 : Élément de texte : "Jani"
Installation
Les fonctions d'analyseur DOM font partie du noyau PHP. Aucune installation n'est nécessaire pour utiliser ces fonctions.
Le fichier XML
Le fichier XML ci-dessous ("note.xml") sera utilisé dans notre exemple :
<?xml version="1.0" encoding="UTF-8"?>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
Charger et générer du XML
Nous voulons initialiser l'analyseur XML, charger le xml et le sortir :
<?php
$xmlDoc = new DOMDocument();
$xmlDoc->load("note.xml");
print $xmlDoc->saveXML();
?>
La sortie du code ci-dessus sera :
Tove Jani Reminder Don't forget me this weekend!
Si vous sélectionnez "Afficher la source" dans la fenêtre du navigateur, vous verrez le code HTML suivant :
<?xml version="1.0" encoding="UTF-8"?>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
L'exemple ci-dessus crée un DOMDocument-Object et y charge le XML de "note.xml".
Ensuite, la fonction saveXML () place le document XML interne dans une chaîne, afin que nous puissions le sortir.
Boucler dans XML
Nous voulons initialiser l'analyseur XML, charger le XML et parcourir tous les éléments de l'élément <note> :
<?php
$xmlDoc = new DOMDocument();
$xmlDoc->load("note.xml");
$x = $xmlDoc->documentElement;
foreach ($x->childNodes AS $item) {
print $item->nodeName . " = " . $item->nodeValue . "<br>";
}
?>
La sortie du code ci-dessus sera :
#text =
to = Tove
#text =
from = Jani
#text =
heading = Reminder
#text =
body = Don't forget me this weekend!
#text =
Dans l'exemple ci-dessus, vous voyez qu'il y a des nœuds de texte vides entre chaque élément.
Lorsque XML est généré, il contient souvent des espaces blancs entre les nœuds. L'analyseur XML DOM les traite comme des éléments ordinaires, et si vous n'en êtes pas conscient, ils causent parfois des problèmes.
Si vous souhaitez en savoir plus sur le DOM XML, veuillez consulter notre didacticiel XML .