Travailler avec XML en PHP : analyse, création et traitement des données

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Travailler avec XML en PHP : Guide complet pour les développeurs



XML (eXtensible Markup Language) reste l'un des formats clés pour l'échange de données, la configuration d'applications et l'intégration avec des services externes. PHP fournit plusieurs outils puissants pour travailler avec XML, chacun adapté à différents scénarios. Dans cet article, nous allons détailler les principales bibliothèques et approches utilisées dans le développement PHP moderne.



Outils principaux de PHP pour travailler avec XML



PHP dispose de trois extensions principales pour travailler avec XML, chacune ayant ses propres caractéristiques et domaines d'application :



  • SimpleXML — un analyseur simple et intuitif pour lire du XML. Idéal pour les petits fichiers et un traitement rapide.
  • DOMDocument — une implémentation complète du W3C DOM pour travailler avec des documents XML. Prend en charge la lecture, l'écriture, la modification et la validation.
  • XMLReader / XMLWriter — des analyseurs en flux pour travailler avec de grands fichiers XML (centaines de mégaoctets et gigaoctets).


1. SimpleXML — démarrage rapide



SimpleXML permet de convertir une chaîne XML ou un fichier en un objet avec lequel on peut travailler comme avec un tableau ou un objet classique. C'est le choix le plus populaire pour les tâches simples.



<?php// Lecture du XML à partir d'une chaîne$xmlString = '<books>    <book id="1">        <title>PHP pour débutants</title>        <author>Ivan Petrov</author>        <price currency="RUB">1500</price>    </book>    <book id="2">        <title>XML en détail</title>        <author>Anna Smirnova</author>        <price currency="RUB">2000</price>    </book></books>';

$xml = simplexml_load_string($xmlString);

// Accès aux donnéesforeach ($xml->book as $book) { echo "ID : " . $book['id'] . ""; echo "Titre : " . $book->title . ""; echo "Auteur : " . $book->author . ""; echo "Prix : " . $book->price . " " . $book->price['currency'] . "

";}

// Création d'un nouveau XML$newXml = new SimpleXMLElement('<catalog/>');$product = $newXml->addChild('product');$product->addAttribute('sku', 'P001');$product->addChild('name', 'Ordinateur portable');$product->addChild('price', 55000);

echo $newXml->asXML();?>


2. DOMDocument — contrôle total



DOMDocument fournit un accès complet au Document Object Model. Vous pouvez créer, modifier et supprimer n'importe quel nœud, ainsi qu'effectuer des requêtes XPath pour rechercher des données.



<?php$dom = new DOMDocument('1.0', 'UTF-8');$dom->formatOutput = true;

// Création de l'élément racine$root = $dom->createElement('employees');$dom->appendChild($root);

// Ajout d'un employé$employee = $dom->createElement('employee');$employee->setAttribute('id', '101');

$name = $dom->createElement('name', 'Alexei Kuznetsov');$employee->appendChild($name);

$position = $dom->createElement('position', 'Développeur');$employee->appendChild($position);

$root->appendChild($employee);

// Requête XPath$xpath = new DOMXPath($dom);$query = "//employee[@id='101']/name";$result = $xpath->query($query);

if ($result->length > 0) { echo "Trouvé : " . $result->item(0)->nodeValue;}

// Sauvegarde dans un fichier$dom->save('employees.xml');?>


3. XMLReader et XMLWriter — pour les grandes données



Lorsque les fichiers XML deviennent trop volumineux pour être chargés en mémoire (plus de 10-50 Mo), les analyseurs en flux viennent à la rescousse. XMLReader lit le document nœud par nœud, tandis que XMLWriter crée le XML par parties.



<?php// Lecture d'un grand fichier XML$reader = new XMLReader();$reader->open('large_data.xml');

while ($reader->read(

Recommendations