oujood.com

PHP XML DOM:Comment Utiliser Le DOM XML en PHP


chercher |

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:

Exemple

Exemple :       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 >:

Exemple

Exemple :       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.




Voir aussi nos tutoriel :

Balise time

Définit une date / heure

fonction printf

Affiche une chaîne de caractères format e

Le fond en css Arriére plan css

La propriété background est la propriété qui gére l'arriere plan d'un élément html...