Maison >développement back-end >Problème PHP >Comment convertir XML en tableau en php
Dans le processus de programmation avec PHP, les fichiers XML sont souvent utilisés, mais tous les développeurs ne sont pas familiers avec les règles de syntaxe des fichiers XML, les fichiers XML doivent donc être convertis en tableaux pour le traitement. Voici comment convertir un fichier XML en tableau à l'aide de PHP.
1. Utilisez la fonction d'extension SimpleXML
La fonction d'extension SimpleXML est une extension d'analyse XML fournie avec PHP. Elle peut analyser le fichier XML en un objet, puis convertir l'objet en un tableau.
Les étapes pour utiliser la fonction d'extension SimpleXML sont les suivantes :
$xml = simplexml_load_file('example.xml');
$array = json_decode(json_encode($xml), TRUE);
Parmi eux, json_decode La fonction () est une fonction qui convertit une chaîne au format JSON en un tableau PHP. La fonction json_encode() sérialise un tableau PHP dans une chaîne au format JSON. Ici, nous sérialisons l'objet SimpleXML dans une chaîne au format JSON, puis l'analysons dans un tableau PHP.
2. Utilisez la classe DOMDocument
DOMDocument est une extension d'analyse DOM fournie avec PHP. Elle peut analyser les fichiers XML dans une structure arborescente, puis trouver les nœuds dont nous avons besoin pour le traitement.
Les étapes pour utiliser la classe DOMDocument sont les suivantes :
$dom = new DOMDocument(); $dom->load('example.xml');
$root = $dom->documentElement;
L'exemple de code est le suivant :
$array = array(); if ($root->hasChildNodes()) { $children = $root->childNodes; for ($i = 0; $i < $children->length; $i++) { $child = $children->item($i); $array[$child->nodeName] = $child->nodeValue; } }
Dans le code ci-dessus, nous créons d'abord un tableau vide, puis parcourons chaque nœud enfant sous le nœud racine. Si le nœud enfant n'est pas vide, alors nous stockons son nom et sa valeur dans un tableau.
3. Utilisez la classe XML Parser
XML Parser est un analyseur XML fourni avec PHP. Il peut analyser les fichiers XML en flux d'événements, puis nous pouvons traiter ce fichier XML en fonction du type d'événement.
Les étapes pour utiliser XML Parser sont les suivantes :
$xml_parser = xml_parser_create();
function startElement($parser, $element_name, $element_attrs) { //处理元素开始事件 } function endElement($parser, $element_name) { //处理元素结束事件 } function charData($parser, $data) { //处理文本内容事件 } xml_set_element_handler($xml_parser, "startElement", "endElement"); xml_set_character_data_handler($xml_parser, "charData");
Dans le code ci-dessus, nous définissons trois fonctions de traitement : startElement() est utilisé pour traiter les événements de début d'élément, endElement() est utilisé pour traiter les événements de fin d'élément et charData() est utilisé pour traiter les événements de contenu texte. Ensuite, nous enregistrons ces trois fonctions de traitement dans l'analyseur XML.
$fp = fopen('example.xml', 'r'); while ($data = fread($fp, 4096)) { xml_parse($xml_parser, $data, feof($fp)); }
Dans le code ci-dessus, nous lisons d'abord le fichier XML dans la mémoire en mode binaire, puis transmettons progressivement les morceaux de données à l'analyseur XML pour analyse.
Résumé :
Les trois méthodes ci-dessus permettent de convertir des fichiers XML en tableaux. Les développeurs peuvent choisir la méthode appropriée en fonction des besoins réels. Lors de l'utilisation de la fonction d'extension SimpleXML et de la classe DOMDocument, PHP occupera une grande quantité de mémoire et de ressources CPU, tandis que l'utilisation de la classe XML Parser peut économiser de la mémoire et des ressources CPU, mais nécessite l'écriture de plus de fonctions de traitement.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!