Définit la forme du coin haut à droite de la frontière
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
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:
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»
Les fonctions de l’analyseur XML DOM font partie de la base PHP. Il n'y a aucune installation nécessaire pour les utiliser.
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>
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.
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 |