Analyse XML
Pour lire et mettre à jour - créer et traiter - un document XML, vous avez besoin d'un analyseur XML.
Il existe deux types de base d'analyseurs XML :
· Analyseurs arborescents : cet analyseur convertit les documents XML en une structure arborescente. Il analyse l'intégralité du document et donne accès aux éléments de l'arborescence, tels que le modèle objet de document (DOM).
· Analyseur temporel : traitez les documents XML comme une série d'événements. Lorsqu'un événement spécifique se produit, l'analyseur appelle une fonction pour le gérer.
L'analyseur DOM est un analyseur arborescent.
Veuillez consulter le fragment de document XML suivant :
<?xml version="1.0" encoding="ISO-8859-1"?>
<from>Jani< /from>
XML DOM Traite le XML ci-dessus comme une structure arborescente :
· Niveau 1 : document XML
· Niveau 2 : élément racine : <from> ;
· Niveau 3 : Élément texte : "Jani"
Installer
DOM Les fonctions de l'analyseur XML font partie du cœur de PHP. Aucune installation n'est requise pour utiliser ces fonctions.
Fichier XML
Le fichier XML suivant sera utilisé dans notre exemple :
<?xml version="1.0" encoding="ISO-8859-1"?> <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 devons initialiser l'analyseur XML, charger le XML et le générer :
Instance
<?php $xmlDoc = new DOMDocument(); $xmlDoc->load("note.xml"); print $xmlDoc->saveXML(); ?>
Le code ci-dessus sera sortie :
ToveJaniReminder Ne m'oubliez pas ce week-end !
Si vous affichez le code source dans une fenêtre de navigateur, vous verrez le code HTML suivant :
<?xml version="1.0" encoding="ISO-8859-1"?> <note> <to>Tove</to> <from>Jani</from> <heading>Reminder</heading> <body>Don't forget me this weekend!</body> </note>
Exemple ci-dessus Créez un objet DOMDocument et chargez le XML dans "note.xml" dans cet objet document.
La fonction saveXML() place le document XML interne dans une chaîne afin que nous puissions le sortir.
Traversing XML
Nous voulons initialiser l'analyseur XML, charger le XML et parcourir <note> ; Tous les éléments de l'élément :
instance
<?php $xmlDoc = new DOMDocument(); $xmlDoc->load("note.xml"); $x = $xmlDoc->documentElement; foreach ($x->childNodes AS $item) { print $item->nodeName . " = " . $item->nodeValue . "<br>"; } ?>
Le code ci-dessus affichera :
#text =
to = Tove
#text =
from = Jani
#text =
head = Rappel
#text =
body = Ne m'oublie pas ce week-end !
#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 entre les nœuds. L'analyseur XML DOM les traite comme des éléments normaux, ce qui peut parfois poser des problèmes si vous n'y prêtez pas attention.