OUJOOD.COM
Ce qui est le DOM ?
PHP et XML
Le W3C DOM fournit un ensemble standard
d'objets pour les documents HTML et XML et une interface standard
pour accéder à ces documents et les manipuler.
Le DOM du W3C est divisé en différentes parties (Core,XML et HTML)
et en différents niveaux (DOM niveau 1/2/3):
* Core DOM - définit un ensemble standard d'objets pour tout
document structuré
* XML DOM - définit un ensemble standard d'objets pour les
documents XML
* HTML DOM - définit un ensemble standard d'objets pour les
documents HTML
L'analyse Dom XML
Comme nous lâavons vu dans le chapitre prĂ©cĂ©dent Pour lire,mettre Ă jour,crĂ©er et manipuler un document XML,nous avons besoin d'un analyseur XML.
Nous avons dit aussi quâil y a deux principaux types d'analyseurs XML:
-  Analyseur basé sur des événements:le document XML est vu comme une série d'événements. Lorsqu'un événement spécifique se produit,elle appelle une fonction pour la supporter. Nous avons vu un exemple de cet analyseur dans le chapitre précédent.
- Analyseur basé sur l'arborescence:cet analyseur transforme un document XML dans une structure arborescente. Il analyse l'ensemble du document le stock en mémoire et donne accÚs aux éléments de l'arborescence
L'analyseur DOM est un analyseur basé sur l'arborescence.
Regardez la fraction suivante du document XML:
Â
<?xml version="1.0" encoding="ISO-8859-1"?>
<de>Yasmine</de>
Â
Le DOM XML voit le code XML ci-dessus comme une arborescence:
Niveau 1:XML Document
Niveau 2:ĂlĂ©ment racine:< de >
Niveau 3:ĂlĂ©ment texte ou chaĂźne de caractĂšre:«Yasmine»
Installation
Les fonctions de lâanalyseur XML DOM font partie de la base PHP. Il n'y a aucune installation nĂ©cessaire pour les utiliser.
Un fichier XML
Le fichier XML ci-dessous sera utilisé dans notre exemple:
Exemple : đ Copier le code
<?xml version="1.0" encoding="UTF-8"?><note><pour>Sara</pour><de>Yasmine</de><titre>Invitation</titre><corps>Venez me voir chez moi ce week-end! </corps></note>Â
Chargement et affichage de fichier XML en PHP
Nous voulons initialiser l'analyseur XML pour charger le fichier xml et afficher son contenu:
ExempleExemple : đ Copier le code
<html><body><?php$xmlDocument
= new DOMDocument();$xmlDocument->load("test.xml");
print $xmlDocument->saveXML();?></body></html>
Le résultat du code ci-dessus sera:
Sara Yasmine Invitation Venez me voir chez moi ce week-end!
Si vous sĂ©lectionnez « Afficher la source » dans la fenĂȘtre du navigateur,vous verrez le code HTML suivant:
Exemple : đ Copier le code
<html> <body> <?xml version="1.0" encoding="UTF-8"?> <note> <pour>Sara</pour> <de>Yasmine</de> <titre>Invitation</titre> <corps>Venez me voir chez moi ce week-end! </corps> </note> </body> </html>
L'exemple ci-dessus crée un objet DOMDocument et charge le fichier XML à partir de « test.xml » dedans en utilisant la fonction load().
Puis on utilise la fonction saveXML() pour mettre le document XML interne en une chaĂźne,ce qui nous permet de lâafficher.
Une boucle via XML
Nous voulons initialiser l'analyseur XML,chargez le XML et effectuer une boucle sur tous les éléments de l'élément < note >:
ExempleExemple : đ Copier le code
<html><body><?php$xmlDocument
= new DOMDocument();$xmlDocument->load("test.xml");Â $x =
$xmlDocument->documentElement;foreach
($x->childNodes AS $item){Â print
$item->nodeName . " = " . $item->nodeValue .
"<br>";Â
}?></body></html>
Le résultat du code ci-dessus sera:
#text
=Â
pour = Sara
#text =Â
de = Yasmine
#text =Â
titre = Invitation
#text =Â
corps = Venez me voir chez moi ce week-end!Â
#text =Â
Dans l'exemple ci-dessus,vous voyez qu'il y a des nĆuds de texte vide entre chaque Ă©lĂ©ment.
Lorsque XML gĂ©nĂšre,il contient souvent des espaces blancs entre les nĆuds.L'analyseur XML DOM traite comme des Ă©lĂ©ments ordinaires,et si vous n'ĂȘtes pas conscience de leur existence,elles causent parfois des problĂšmes.
Mais si vous éliminez tous les retours à la ligne dans le fichier xml comme suit:
Exemple : đ Copier le code
<?xml version="1.0" encoding="UTF-8"?> <note><pour>Sara</pour><de>Yasmine</de><titre>Invitation</titre><corps>Venez me voir chez moi ce week-end! </corps></note>
 Tous les nĆuds de texte vide disparaissent comme par magie.
chapitre précédent | sommaire | chapitre suivant |