PHP Analyseur SimpleXML


SimpleXML est une extension PHP qui permet de manipuler et d'obtenir facilement des données XML.


L'Analyseur SimpleXML

SimpleXML est un analyseur basé sur un arbre.

SimpleXML fournit un moyen simple d'obtenir le nom d'un élément, ses attributs et son contenu textuel si vous connaissez la structure ou la mise en page du document XML.

SimpleXML transforme un document XML en une structure de données que vous pouvez parcourir comme une collection de tableaux et d'objets.

Comparé à DOM ou à l'analyseur Expat, SimpleXML nécessite moins de lignes de code pour lire les données textuelles d'un élément.


Installation

À partir de PHP 5, les fonctions SimpleXML font partie intégrante du cœur de PHP. Aucune installation n'est requise pour utiliser ces fonctions.


PHP SimpleXML - Lire à partir d'une chaîne

La fonction PHP simplexml_load_string() est utilisée pour lire des données XML à partir d'une chaîne.

Supposons que nous ayons une variable contenant des données XML, comme ceci :

$myXMLData =
"<?xml version='1.0' encoding='UTF-8'?>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Rappel</heading>
<body>N'oublie pas de me rappeler ce week-end !</body>
</note>";

L'exemple ci-dessous montre comment utiliser la fonction simplexml_load_string() pour lire des données XML à partir d'une chaîne :

Exemple

<?php
$myXMLData =
"<?xml version='1.0' encoding='UTF-8'?>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Rappel</heading>
<body>N'oublie pas de me rappeler ce week-end !</body>
</note>";

$xml=simplexml_load_string($myXMLData) or die("Erreur : Impossible de créer l'objet");
print_r($xml);
?>
Exécuter l'exemple »

La sortie du code ci-dessus sera :

SimpleXMLElement Object ( [to] => Tove [from] => Jani [heading] => Rappel [body] => N'oublie pas de me rappeler ce week-end ! )

Astuce de gestion des erreurs : Utilisez la fonctionnalité libxml pour récupérer toutes les erreurs XML lors du chargement du document, puis parcourez les erreurs. L'exemple suivant essaie de charger une chaîne XML incorrecte :

Exemple

<?php
libxml_use_internal_errors(true);
$myXMLData =
"<?xml version='1.0' encoding='UTF-8'?>
<document>
<user>John Doe</wronguser>
<email>john@example.com</wrongemail>
</document>";

$xml = simplexml_load_string($myXMLData);
if ($xml === false) {
echo "Échec du chargement de XML : ";
foreach(libxml_get_errors() as $error) {
echo "<br>", $error->message;
}
} else {
print_r($xml);
}
?>
Exécuter l'exemple »

La sortie du code ci-dessus sera :

Échec du chargement de XML :
Mismatch de balise d'ouverture et de fermeture : user ligne 3 et wronguser
Mismatch de balise d'ouverture et de fermeture : email ligne 4 et wrongemail


PHP SimpleXML - Lire à partir d'un fichier

La fonction PHP simplexml_load_file() est utilisée pour lire des données XML à partir d'un fichier.

Supposons que nous ayons un fichier XML appelé " note.xml ", qui ressemble à ceci :

<?xml version="1.0" encoding="UTF-8"?>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Rappel</heading>
<body>N'oublie pas de me rappeler ce week-end !</body>
</note>

L'exemple ci-dessous montre comment utiliser la fonction simplexml_load_file() pour lire des données XML à partir d'un fichier :

Exemple

<?php
$xml=simplexml_load_file("note.xml") or die("Erreur : Impossible de créer l'objet");
print_r($xml);
?>
Exécuter l'exemple »

La sortie du code ci-dessus sera :

SimpleXMLElement Object ( [to] => Tove [from] => Jani [heading] => Rappel [body] => N'oublie pas de me rappeler ce week-end ! )

Astuce : Le prochain chapitre montre comment obtenir les valeurs des nœuds d'un fichier XML avec SimpleXML !


Plus de PHP SimpleXML

Pour plus d'informations sur les fonctions PHP SimpleXML, visitez notre Référence PHP SimpleXML .