PHP xml_parse_into_struct()
La fonction xml_parse_into_struct() est une fonction intégrée en PHP qui est utilisé pour analyser les données XML dans un tableau. Les données XML sont ‘parsées’ en deux tableau, le première est un tableau d’index qui contient des pointeurs vers l’emplacement des valeurs et le deuxième est un tableau de valeurs qui contient les données du XML analysé.
Syntaxe
xml_parse_into_struct(xml_parser, xml_data, values, index)
Paramètres
- xml_parser(Obligatoire) : Spécifie l’analyseur XML à utiliser.
- xml_data(Obligatoire) : Spécifie les données XML à analyser
- values(Obligatoire) : Spécifie un tableau contenant les valeurs des données XML.
- index(Optionnel) : Spécifie un tableau contenant les pointeurs vers l’emplacement des valeurs.
Valeur de retour
La fonction renvoie 1 en cas de succès, 0 en cas d’échec.
Version PHP:
4+
Exemple :
Supposant on la fichier XML suivant nommé « file.xml »:
<?xml version="1.0" encoding="utf-8"?> <person> <name>Alex</name> <address>Paris</address> <age>25</age> </person>
Le code suivant parse le document XML ci-dessus dans un tableau:
<?php // Créer un analyseur XML $parser = xml_parser_create(); // Ouvrir le fichier xml $file = fopen("file.xml", "r"); // Lire les données XML à partir du fichier XML spécifié $data = fread($file, 4096); // Parser les données XML dans un tableau xml_parse_into_struct($parser, $data, $values); // Libérer l'analyseur XML xml_parser_free($parser); // Afficher les données XML dans un tableau print_r($values); // Fermer le fichier fclose($file); ?>
Sortie:
Array ( [0] => Array ( [tag] => PERSON [type] => open [level] => 1 [value] => ) [1] => Array ( [tag] => NAME [type] => complete [level] => 2 [value] => Alex ) [2] => Array ( [tag] => PERSON [value] => [type] => cdata [level] => 1 ) [3] => Array ( [tag] => PERSON [value] => [type] => cdata [level] => 1 ) [4] => Array ( [tag] => ADRESSE [type] => complete [level] => 2 [value] => Paris ) [5] => Array ( [tag] => PERSON [value] => [type] => cdata [level] => 1 ) [6] => Array ( [tag] => AGE [type] => complete [level] => 2 [value] => 25 ) [7] => Array ( [tag] => PERSON [value] => [type] => cdata [level] => 1 ) [8] => Array ( [tag] => PERSON [type] => close [level] => 1 ) )