PHP XML DOM


Le parseur DOM intégré permet de traiter des documents XML en PHP.


Qu'est-ce que le DOM ?

W3C DOM fournit un ensemble standard d'objets pour les documents HTML et XML, ainsi que des interfaces standard pour accéder à ces documents et les manipuler.

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

Pour en savoir plus sur XML DOM, veuillez consulter notreTutoriel XML DOM。


Analyse XML

Pour lire et mettre à jour - créer et traiter - un document XML, vous avez besoin d'un parseur XML.

Il existe deux types de base de parseurs XML :

  • Analyseurs arborescents : Ce type d'analyseur convertit un document XML en une structure arborescente. Il analyse l'intégralité du document et donne accès aux éléments de l'arbre, tels que le Document Object Model (DOM).
  • Analyseurs événementiels : Ils traitent un document 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.

Regardez 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"

Installation

Les fonctions de l'analyseur DOM 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 nos exemples :

<?xml version="1.0" encoding="ISO-8859-1"?>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Rappel</heading>
<body>Ne m'oubliez pas ce week-end !</body>
</note>


Charger et afficher le XML

Nous devons initialiser l'analyseur XML, charger le XML et l'afficher :

Exemple

<?php
$xmlDoc = new DOMDocument();
$xmlDoc->load("note.xml");

print $xmlDoc->saveXML();
?>

Le code ci-dessus affichera :

ToveJaniRappel Ne m'oublie pas ce week-end !

Si vous affichez le code source dans la fenêtre du navigateur, vous verrez le HTML suivant :

<?xml version="1.0" encoding="ISO-8859-1"?>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Rappel</heading>
<body>Ne m'oubliez pas ce week-end !</body>
</note>

L'exemple ci-dessus crée un objet DOMDocument et charge le XML depuis "note.xml" dans cet objet document.

La fonction saveXML() place le document XML interne dans une chaîne, ce qui nous permet de l'afficher.


Parcourir le XML

Nous allons initialiser l'analyseur XML, charger le XML et parcourir tous les éléments de l'élément <note> :

Exemple

<?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 =
heading = 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 le XML est généré, il contient généralement des espaces blancs entre les nœuds. L'analyseur DOM XML les traite comme des éléments ordinaires, ce qui peut parfois poser des problèmes si vous n'y prêtez pas attention.


Pour en savoir plus sur XML DOM, veuillez consulter notreTutoriel XML DOM。

Autres extensions