Analyseur PHP SimpleXML
SimpleXML est une extension PHP qui nous permet de manipuler et d'obtenir facilement des données XML.
L'analyseur SimpleXML
SimpleXML est un analyseur arborescent.
SimpleXML permet d'obtenir facilement le nom, les attributs et le contenu textuel d'un élément 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 prend moins de lignes de code pour lire les données textuelles d'un élément.
Installation
Depuis PHP 5, les fonctions SimpleXML font partie du noyau PHP. Aucune installation n'est requise pour utiliser ces fonctions.
PHP SimpleXML - Lire à partir de la 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>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>";
L'exemple ci-dessous montre comment utiliser la simplexml_load_string()
fonction 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>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>";
$xml=simplexml_load_string($myXMLData) or die("Error: Cannot create object");
print_r($xml);
?>
La sortie du code ci-dessus sera :
SimpleXMLElement Object ( [to] => Tove [from] => Jani [heading] => Reminder [body] => Don't forget me this weekend! )
Conseil de gestion des erreurs : utilisez la fonctionnalité libxml pour récupérer toutes les erreurs XML lors du chargement du document, puis itérer sur les erreurs. L'exemple suivant tente de charger une chaîne XML brisée :
Exemple
<?php
libxml_use_internal_errors(true);
$myXMLData =
"<?xml version='1.0' encoding='UTF-8'?>
<document>
<user>John Doe</wronguser>
<email>[email protected]</wrongemail>
</document>";
$xml = simplexml_load_string($myXMLData);
if ($xml === false) {
echo "Failed loading XML: ";
foreach(libxml_get_errors() as $error) {
echo "<br>", $error->message;
}
} else {
print_r($xml);
}
?>
La sortie du code ci-dessus sera :
Failed loading XML:
Opening and ending tag mismatch: user line 3 and wronguser
Opening and ending tag mismatch: email line 4 and wrongemail
PHP SimpleXML - Lire à partir du 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>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
L'exemple ci-dessous montre comment utiliser la simplexml_load_file()
fonction pour lire les données XML d'un fichier :
Exemple
<?php
$xml=simplexml_load_file("note.xml") or die("Error: Cannot create object");
print_r($xml);
?>
La sortie du code ci-dessus sera :
SimpleXMLElement Object ( [to] => Tove [from] => Jani [heading] => Reminder [body] => Don't forget me this weekend! )
Astuce : Le chapitre suivant montre comment obtenir/récupérer les valeurs des nœuds d'un fichier XML avec SimpleXML !
Plus PHP SimpleXML
Pour plus d'informations sur les fonctions PHP SimpleXML, consultez notre Référence PHP SimpleXML .