Tutoriel PHP XML : créer, analyser, lire avec un exemple
⚡ Résumé intelligent
PHP et XML fonctionnent de concert pour structurer, stocker et échanger des données entre systèmes. Ce guide explique le fonctionnement de XML, du DOM et des analyseurs XML, puis montre comment lire un document XML avec SimpleXML et comment en créer un avec la classe DOMDocument, et enfin quand utiliser chacun de ces outils.

Qu'est-ce que XML?
XML est l'acronyme de Extensible Markup Language.
Le format XML est utilisé pour structurer, stocker et transporter des données d'un système à un autre.
XML est similaire à HTML. Il utilise des balises ouvrantes et fermantes. Contrairement à HTML, XML permet aux utilisateurs de définir leurs propres balises.
Qu'est-ce que DOM?
DOM est l'acronyme de Document Object Model.
Il s'agit d'une norme multiplateforme et indépendante du langage qui définit comment accéder aux données et les manipuler dans :
- HTML
- XHTML
- XML
DOM XML est utilisé pour accéder et manipuler des documents XML. Il affiche le document XML sous forme de structure arborescente.
Analyseurs XML
Un analyseur XML est un programme qui traduit le document XML en un objet DOM (Document Object Model) XML.
L'objet DOM XML peut ensuite être manipulé à l'aide de JavaScénario, Python, PHP et d'autres langages.
Le mot-clé CDATA, qui est l'acronyme de (unparsed) Character Data, est utilisé pour ignorer les caractères spéciaux tels que « < » et « > » lors de l'analyse d'un document XML.
Pourquoi utiliser XML ?
- Les services web tels que SOAP et REST utilisent le format XML pour échanger des informations. Comprendre le fonctionnement et les principes du XML constitue un atout majeur pour les développeurs, car les applications modernes font un usage intensif des services web.
- Les documents XML peuvent être utilisés pour stocker les paramètres de configuration d'une application.
- Il vous permet de créer vos propres balises personnalisées, ce qui le rend plus flexible.
Exemple de document XML
Supposons que vous soyez en développementping une application qui récupère des données d'un service web au format XML.
Vous trouverez ci-dessous un exemple de ce à quoi ressemble un document XML.
<?xml version="1.0" encoding="utf-8"?> <employees status = "ok"> <record man_no = "101"> <name>Joe Paul</name> <position>CEO</position> </record> <record man_no = "102"> <name>Tasha Smith</name> <position>Finance Manager</position> </record> </employees>
ICI,
- « « spécifie la version XML et l'encodage à utiliser »
- " " est l'élément racine.
- « … « » sont les éléments enfants, un par dossier d’employé.
Comment lire XML en utilisant PHP
Écrivons maintenant le code qui lira le document XML des employés et affichera les résultats dans un navigateur web. index.php
<?php $xml = simplexml_load_file('employees.xml'); echo '<h2>Employees Listing</h2>'; $list = $xml->record; for ($i = 0; $i < count($list); $i++) { echo '<b>Man no:</b> ' . $list[$i]->attributes()->man_no . '<br>'; echo 'Name: ' . $list[$i]->name . '<br>'; echo 'Position: ' . $list[$i]->position . '<br><br>'; } ?>
ICI,
- « $xml = simplexml_load_file('employees.xml'); » utilise la fonction simplexml_load_file pour charger le fichier nommé employees.xml et assigner son contenu à la variable $xml.
- « $list = $xml->record; » récupère le contenu des nœuds d'enregistrement.
- « for ($i = 0; $i < count(…)… » est la boucle for qui lit le tableau et affiche les résultats
- "$list[$i]->attributes()->man_no;" lit l'attribut man_no de l'élément
- « $list[$i]->nom ; » lit la valeur de l'élément enfant name
- « $liste[$i]->position ; » lit la valeur de l'élément enfant position
Test du lecteur XML
En supposant que vous ayez enregistré le fichier index.php dans le dossier phptuts/xml, accédez à URL http://localhost/phptuts/xml/index.php
Comment créer un document XML en utilisant PHP
Nous allons maintenant voir comment créer un document XML en utilisant PHP.
Le code suivant utilise la classe intégrée DOMDocument de PHP pour créer un document XML.
<?php $dom = new DOMDocument(); $dom->encoding = 'utf-8'; $dom->xmlVersion = '1.0'; $dom->formatOutput = true; $xml_file_name = 'movies_list.xml'; $root = $dom->createElement('Movies'); $movie_node = $dom->createElement('movie'); $attr_movie_id = new DOMAttr('movie_id', '5467'); $movie_node->setAttributeNode($attr_movie_id); $child_node_title = $dom->createElement('Title', 'The Campaign'); $movie_node->appendChild($child_node_title); $child_node_year = $dom->createElement('Year', 2012); $movie_node->appendChild($child_node_year); $child_node_genre = $dom->createElement('Genre', 'Comedy'); $movie_node->appendChild($child_node_genre); $child_node_ratings = $dom->createElement('Ratings', 6.2); $movie_node->appendChild($child_node_ratings); $root->appendChild($movie_node); $dom->appendChild($root); $dom->save($xml_file_name); echo "$xml_file_name has been successfully created"; ?>
ICI,
- « $dom = new DOMDocument(); » crée une instance de la classe DOMDocument.
- "$dom->encodage = 'utf-8';" définit l'encodage du document sur utf-8
- "$dom->xmlVersion = '1.0';" spécifie le numéro de version 1.0
- « $dom->formatOutput = true ; » garantit que la sortie est bien formatée
- "$root = $dom->createElement('Films');" crée le nœud racine nommé Films
- « $attr_movie_id = new DOMAttr('movie_id', '5467'); » définit l'attribut movie_id du nœud movie
- La méthode `$dom->createElement('ElementName', 'ElementValue')` crée un nœud enfant. `ElementName` spécifie le nom de l'élément, par exemple « Titre ». `ElementValue` définit la valeur du nœud enfant, par exemple « La Campagne ».
- « $root->appendChild($movie_node); » ajoute le nœud « movie » au nœud racine « Movies ».
- "$dom->appendChild($root);" ajoute le nœud racine au document XML.
- "$dom->save($xml_file_name);" enregistre le fichier XML dans le répertoire racine du serveur Web.
- « echo “$xml_file_name a été créé avec succès”; » affiche un message de réussite.
Test du XML Creator
En supposant que vous ayez enregistré le fichier create_movies_list.php dans le dossier phptuts/xml, accédez à URL http://localhost/phptuts/xml/create_movies_list.php
Ouvrez le fichier movies_list.xml.
SimpleXML vs DOMDocument
PHP propose deux principales méthodes pour manipuler le XML. SimpleXML est idéal pour la simple lecture de données, tandis que DOMDocument offre un contrôle plus précis pour la création et l'édition avancée de documents. Le tableau ci-dessous les compare.
| Aspect | SimpleXML | Document DOM |
|---|---|---|
| Facilité d’utilisation | Très simple ; le document se comporte comme des objets imbriqués | API plus verbeuse, basée sur les nœuds |
| Meilleur pour | Lecture et correction légère | Création de documents et manipulation complexe |
| Style d'accès | $xml->enregistrement->nom | créerElement() et ajouterChild() |
| Prise en charge de XPath | Oui, via ->xpath() | Oui, via la classe DOMXPath |
En pratique, il est conseillé d'utiliser d'abord SimpleXML pour lire les flux et les fichiers simples, puis de passer à DOMDocument lorsque vous devez créer des documents, insérer des nœuds à des positions spécifiques ou effectuer une validation par rapport à un schéma.



