Dans le développement Web, XML est largement utilisé comme format de transmission et de stockage de données. Lorsque nous devons utiliser des données au format XML, nous devons généralement convertir la chaîne XML en un tableau ou un objet pour faciliter les opérations ultérieures. En PHP, vous pouvez facilement convertir des chaînes XML en tableaux. Cet article présentera comment PHP convertit XML en tableau.
1. Introduction au format XML
XML est un langage de balisage, principalement utilisé pour la transmission et le stockage de données. XML contient des éléments et des attributs. L'élément est généralement représenté par une balise, telle que :
<book> <title>PHP从入门到精通</title> <price>50</price> </book>
Ce texte XML définit un élément livre, qui contient des sous-éléments titre et prix.
Attribut est un moyen d'ajouter des informations supplémentaires à un élément, telles que :
<book category="Programming"> <title>PHP从入门到精通</title> <price>50</price> </book>
Dans cet exemple, nous définissons l'attribut catégorie pour l'élément livre avec la valeur "Programmation".
2. Convertir XML en tableau en PHP
PHP fournit de nombreuses fonctions pour traiter XML, parmi lesquelles les fonctions les plus couramment utilisées sont simplexml_load_string() et xml_parse_into_struct(). Ci-dessous, nous présentons respectivement l'utilisation de ces deux fonctions. La fonction
simplexml_load_string() peut créer un objet SimpleXMLElement à partir d'une chaîne XML. Grâce à cet objet, vous pouvez facilement accéder aux éléments et aux attributs en XML, et vous pouvez également convertir l'objet SimpleXMLElement en tableau ou autre. types de données. Voici un exemple d'utilisation de la fonction simplexml_load_string() pour convertir XML en tableau :
$xml = '<bookstore> <book category="Programming"> <title>PHP从入门到精通</title> <author>张三</author> <price>50</price> </book> <book category="Web Development"> <title>JavaScript高级编程</title> <author>李四</author> <price>45</price> </book> </bookstore>'; $data = json_decode(json_encode(simplexml_load_string($xml)), true); print_r($data);
Exécutez le code ci-dessus et le résultat est le suivant :
Array ( [book] => Array ( [0] => Array ( [@attributes] => Array ( [category] => Programming ) [title] => PHP从入门到精通 [author] => 张三 [price] => 50 ) [1] => Array ( [@attributes] => Array ( [category] => Web Development ) [title] => JavaScript高级编程 [author] => 李四 [price] => 45 ) ) )
Comme vous pouvez le voir, la fonction simplexml_load_string() convertit XML en un relation composée de plusieurs tableaux. La fonction
xml_parse_into_struct() analyse une chaîne XML dans un tableau. Voici un exemple d'utilisation de la fonction xml_parse_into_struct() pour convertir XML en tableau :
$xml = '<bookstore> <book category="Programming"> <title>PHP从入门到精通</title> <author>张三</author> <price>50</price> </book> <book category="Web Development"> <title>JavaScript高级编程</title> <author>李四</author> <price>45</price> </book> </bookstore>'; $p = xml_parser_create(); xml_parse_into_struct($p, $xml, $vals); xml_parser_free($p); print_r($vals);
Exécutez le code ci-dessus et le résultat est le suivant :
Array ( [0] => Array ( [tag] => BOOKSTORE [type] => open [level] => 1 ) [1] => Array ( [tag] => BOOK [type] => open [level] => 2 [attributes] => Array ( [CATEGORY] => Programming ) ) [2] => Array ( [tag] => TITLE [type] => open [level] => 3 ) [3] => Array ( [tag] => TITLE [type] => close [level] => 3 [value] => PHP从入门到精通 ) [4] => Array ( [tag] => AUTHOR [type] => open [level] => 3 ) [5] => Array ( [tag] => AUTHOR [type] => close [level] => 3 [value] => 张三 ) [6] => Array ( [tag] => PRICE [type] => open [level] => 3 ) [7] => Array ( [tag] => PRICE [type] => close [level] => 3 [value] => 50 ) [8] => Array ( [tag] => BOOK [type] => close [level] => 2 ) [9] => Array ( [tag] => BOOK [type] => open [level] => 2 [attributes] => Array ( [CATEGORY] => Web Development ) ) [10] => Array ( [tag] => TITLE [type] => open [level] => 3 ) [11] => Array ( [tag] => TITLE [type] => close [level] => 3 [value] => JavaScript高级编程 ) [12] => Array ( [tag] => AUTHOR [type] => open [level] => 3 ) [13] => Array ( [tag] => AUTHOR [type] => close [level] => 3 [value] => 李四 ) [14] => Array ( [tag] => PRICE [type] => open [level] => 3 ) [15] => Array ( [tag] => PRICE [type] => close [level] => 3 [value] => 45 ) [16] => Array ( [tag] => BOOK [type] => close [level] => 2 ) [17] => Array ( [tag] => BOOKSTORE [type] => close [level] => 1 ) )
Comme vous pouvez le voir, la fonction xml_parse_into_struct() analyse XML en un tableau composé de plusieurs tableaux Tableaux relationnels, où chaque tableau représente un élément ou un attribut en XML.
3. Utilisez l'extension DOMDocument pour la conversion
En PHP, il existe également une méthode pour utiliser l'extension DOMDocument pour analyser XML. DOMDocument est une extension intégrée de PHP et est très puissante. Voici un exemple d'utilisation de DOMDocument pour convertir des données XML :
$xml = '<bookstore> <book category="Programming"> <title>PHP从入门到精通</title> <author>张三</author> <price>50</price> </book> <book category="Web Development"> <title>JavaScript高级编程</title> <author>李四</author> <price>45</price> </book> </bookstore>'; $dom = new DOMDocument; $dom->loadXML($xml); $data = array(); foreach ($dom->getElementsByTagName('book') as $book) { $data[] = array( 'category' => $book->getAttribute('category'), 'title' => $book->getElementsByTagName('title')->item(0)->textContent, 'author' => $book->getElementsByTagName('author')->item(0)->textContent, 'price' => $book->getElementsByTagName('price')->item(0)->textContent, ); } print_r($data);
Exécutez le code ci-dessus, le résultat de sortie est le suivant :
Array ( [0] => Array ( [category] => Programming [title] => PHP从入门到精通 [author] => 张三 [price] => 50 ) [1] => Array ( [category] => Web Development [title] => JavaScript高级编程 [author] => 李四 [price] => 45 ) )
Comme vous pouvez le voir, en utilisant DOMDocument pour analyser des données XML, nous pouvons facilement obtenir les éléments et attributs en XML, puis convertissez-les en tableau.
4. Résumé
Il existe plusieurs façons pour PHP de convertir du XML en tableaux, à savoir la fonction simplexml_load_string(), la fonction xml_parse_into_struct() et l'utilisation de l'extension DOMDocument. Chaque méthode a ses scénarios applicables. Choisissez la méthode appropriée en fonction des besoins réels. Bien entendu, quelle que soit la méthode utilisée, nous devons prêter attention au format et aux spécifications XML pour garantir l’exactitude et l’exhaustivité des données.
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!