Jeudi 21 janvier 2010,
Dans cet article je vais vous présenter comment parser du XML à l’aide de la classe PHP xmlAnalyser. Cette classe vous permet de transformer un fichier XML en tableau PHP.
Cette classe analyse le XML et le transforme en un tableau contenant : le type de la balise
un tableau contenant les paramètres
le contenu de la balise
les éventuels enfants
Prenons un exemple : soit le fichier XML suivant :
<root>
<element param1="abc" param2="123">
<text>bonjour</text>
<text>bonjour2</text>
</element>
<element>
<text>Coment ca va?</text>
<text>Bien</text>
</element>
</root>
Soit le fichier PHP suivant : <?php
//on inclus la classe
require_once "xmlanalyser.class.php";
//On charge le xml
$xml = file_get_contents("test.xml");
//On instancie la classe
$xmlAnalyser = new xmlAnalyser($xml);
//On récupère le tableau
$tab = $xmlAnalyser->xmlToArray();
//On affiche!
print_r($tab);
?>
Cela retourne un tableau dans $tab du type :
Array
(
[0] => Array
(
[type] => ROOT
[attributes] =>
[value] =>
[child] => Array
(
[0] => Array
(
[type] => ELEMENT
[attributes] => Array
(
[PARAM1] => abc
[PARAM2] => 123
)
[value] =>
[child] => Array
(
[0] => Array
(
[type] => TEXT
[attributes] =>
[value] => bonjour
)
[1] => Array
(
[type] => TEXT
[attributes] =>
[value] => bonjour2
)
)
)
[1] => Array
(
[type] => ELEMENT
[attributes] =>
[value] =>
[child] => Array
(
[0] => Array
(
[type] => TEXT
[attributes] =>
[value] => Coment ca va?
)
[1] => Array
(
[type] => TEXT
[attributes] =>
[value] => Bien
)
)
)
)
)
)
Ce tableau contient les éléments présents dans le ficher XML. Chaque élément contient plusieurs valeurs : type : Nom de la balise
attributes : Tableaux des attributs de l’élément : clef=>valeur
value : valeur contenue dans la balise
child : Tableaux contenant les éléments enfants
Cette classe ne permet, à ce jour, que de lire un fichier XML et non pas de créer ou modifier celui-ci.
Modifications apportés par la V1.1 : Meilleure gestion de l’analyse du fichier, afin d’éviter certains "Notices" qui pouvaient apparaitre en fonction de la configuration de PHP.