SimpleXML PHP

SimpleXML traite les tâches XML les plus courantes, les autres tâches étant confiées à d'autres extensions.

Qu'est-ce que SimpleXML ?

SimpleXML est une nouvelle fonctionnalité de PHP 5. En connaissant la layout du document XML, c'est un moyen pratique d'obtenir les attributs et le texte des éléments.

Comparé aux analyseurs DOM ou Expat, SimpleXML peut lire les données de texte des éléments avec seulement quelques lignes de code.

SimpleXML peut convertir un document XML en objet, par exemple :

  • Élément - Converti en objet SimpleXMLElement. Lorsqu'il existe plusieurs éléments au même niveau, ils sont placés dans un tableau.
  • Attributs - Accédé par l'intermédiaire d'un tableau associatif, où les indices correspondent aux noms des attributs.
  • Données d'élément - Les données de texte provenant de l'élément sont converties en chaîne. Si un élément possède plusieurs nœuds de texte, ils sont classés dans l'ordre où ils sont trouvés.

Lorsque vous exécutez des tâches de base comme celles-ci, SimpleXML est très rapide à utiliser :

  • Lire un fichier XML
  • Extraire des données à partir d'une chaîne XML
  • Éditer les nœuds de texte ou les attributs

Cependant, pour traiter des XML avancés, comme les espaces de noms, il est préférable d'utiliser l'analyseur Expat ou XML DOM.

Installation

À partir de PHP 5.0, la fonction SimpleXML fait partie intégrante du noyau PHP. Ces fonctions peuvent être utilisées sans installation.

Utilisation de SimpleXML

Voici le fichier XML :

<?xml version="1.0" encoding="ISO-8859-1"?>
<note>
<to>George</to>
<from>John</from>
<heading>Rappel</heading>
<body>Ne oubliez pas la réunion!</body>
</note>

Nous allons extraire le nom et les données des éléments enfant du fichier XML ci-dessus.

Voici ce que nous devons faire :

  1. Charger le fichier XML
  2. Obtenir le nom du premier élément
  3. Créer un cycle déclenché sur chaque noeud enfant en utilisant la fonction children()
  4. Afficher le nom et les données de chaque élément enfant

Exemple

<?php
$xml = simplexml_load_file("test.xml");
echo $xml->getName() . "<br />";
foreach($xml->children() as $child)
  {
  echo $child->getName() . ": " . $child . "<br />";
  }
?>

La sortie du code suivant :

note
to: George
from: John
heading: Rappel
body: Ne oubliez pas la réunion !

Plus d'informations sur PHP SimpleXML

Pour plus d'informations sur PHP SimpleXML, veuillez visiter notre Manuel de référence SimpleXML PHP.