DOM XML PHP
- Page précédente XML Expat Parser
- Page suivante SimpleXML XML
L'analyseur DOM intégré rend possible le traitement des documents XML en PHP.
Qu'est-ce que le DOM ?
Le W3C DOM fournit un ensemble standard d'objets pour les documents HTML et XML, ainsi qu'une interface standard pour accéder et manipuler ces documents.
Le W3C DOM est divisé en différentes parties (Core, XML et HTML) et différents niveaux (DOM Level 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
Si vous souhaitez en apprendre davantage sur XML DOM, veuillez visiter notre Tutoriel XML DOM.
Analyse XML
Pour lire et mettre à jour - créer et traiter - un document XML, vous avez besoin d'un analyseur XML.
Il y a deux types fondamentaux d'analyseur XML :
- Analyseur basé sur l'arbre: ce type d'analyseur convertit le document XML en structure arborescente. Il analyse tout le document et fournit une API pour accéder aux éléments de l'arbre, par exemple le Document Object Model (DOM).
- Analyseur basé sur des événements: perçoit le document XML comme une série d'événements. Lorsqu'un événement spécifique se produit, l'analyseur appelle une fonction pour le traiter.
L'analyseur DOM est un analyseur basé sur l'arbre.
Voyez le fragment de document XML suivant :
<?xml version="1.0" encoding="ISO-8859-1"?> <from>John</from>
L'analyseur DOM perçoit l'XML comme une structure arborescente :
- Niveau 1 : Document XML
- Niveau 2 : Élément racine : <from>
- Niveau 3 : Élément de texte : "John"
Installation
Les fonctions de l'analyseur DOM XML font partie intégrante du noyau PHP. Vous pouvez les utiliser sans installation.
Fichier XML
Nous utiliserons le fichier XML suivant dans notre exemple :
<?xml version="1.0" encoding="ISO-8859-1"?> <note> <to>George</to> <from>John</from> <heading>Rappel</heading> <body>N'oubliez pas la réunion !</body> </note>
Charger et sortir l'XML
Nous devons initialiser l'analyseur XML, charger le XML et le sortir :
Exemple
<?php $xmlDoc = new DOMDocument(); $xmlDoc->load("note.xml"); print $xmlDoc->saveXML(); ?>
La sortie du code ci-dessus :
George John Rappel N'oubliez pas la réunion !
Si vous regardez le code source dans la fenêtre du navigateur, vous verrez ce qui suit :
<?xml version="1.0" encoding="ISO-8859-1"?> <note> <to>George</to> <from>John</from> <heading>Rappel</heading> <body>N'oubliez pas la réunion !</body> </note>
Dans l'exemple ci-dessus, un objet DOMDocument a été créé et le XML de "note.xml" a été chargé dans cet objet document.
La fonction saveXML() met le document XML interne dans une chaîne, de sorte que nous puissions l'afficher.
Itérer sur XML
Nous devons initialiser le parseur XML, charger XML et itérer sur tous les éléments <note> :
Exemple
<?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 :
#text = to = George #text = from = John #text = heading = Rappel #text = body = Ne oubliez pas la réunion ! #text =
Dans l'exemple ci-dessus, vous voyez des nœuds de texte vides entre chaque élément.
Lorsque XML est généré, il contient généralement des espaces entre les nœuds. Le parseur XML DOM les traite comme des éléments normaux. Si vous ne les prenez pas en compte, cela peut parfois poser des problèmes.
Si vous souhaitez en apprendre davantage sur XML DOM, veuillez visiter notre Tutoriel XML DOM.
- Page précédente XML Expat Parser
- Page suivante SimpleXML XML