Dans le développement Web, nous avons souvent besoin de transmettre et de stocker certaines données sous forme de XML, et la conversion de données XML en tableaux est également une exigence très courante dans les affaires réelles. En tant que langage de programmation Web couramment utilisé, PHP fournit également de nombreux outils et fonctions pour traiter les données XML. Cet article explique comment convertir des données XML en tableau en PHP.
PHP fournit un analyseur appelé SimpleXML qui peut convertir les données XML en objets PHP. Vous pouvez convertir des données XML en tableau en PHP en convertissant l'objet en tableau.
$xml = <<
<name>PHP Programming</name> <author>John Smith</author> <price>15.00</price>
< ;book>
<name>Web Development</name> <author>Jane Doe</author> <price>20.00</price>
XML;
$data = simplexml_load_string($xml);
$array = json_decode(json_encode($data), TRUE);
print_r( $array);
?>
Le code ci-dessus utilise d'abord XML heredoc (<< Une autre façon d'analyser du XML dans un tableau consiste à utiliser l'extension DOM de PHP. DOM fournit des API pour parcourir les fichiers XML, nous utiliserons le code suivant : $xml = << $doc = new DOMDocument(); $books = $doc->getElementsByTagName("book"); foreach ($books as $book) { ); print_r($result); Nous créons d'abord un objet DOMDocument à l'aide de la méthode loadXML(), puis l'obtenons via le Méthode getElementsByTagName() Accédez à tous les nœuds du livre, parcourez chaque nœud du livre et stockez les valeurs de ses nœuds nom, auteur et prix dans le tableau PHP $result. Lors du traitement de gros fichiers XML, la consommation de mémoire du DOM peut être trop élevée, nous pouvons donc adopter l'analyseur XMLReader, qui peut lire des documents XML sans utilisation intensive de mémoire et les convertir en tableau PHP. $xml = << $data = array(); while ($reader->read()) { } print_r($data); Nous utilisons la méthode xml() de l'objet XMLReader pour y lire les données XML, et utilisons une boucle while pour lire de manière itérative chaque nœud de livre et stocker la valeur de son enfant nœud dans le tableau PHP $data. Ci-dessus sont les codes et les étapes spécifiques pour convertir des données XML en tableaux PHP en utilisant trois méthodes. Lorsque nous devons traiter des données XML, nous pouvons choisir d'utiliser différents outils d'analyse pour nous adapter aux différents besoins et exigences de performances. 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! <name>PHP Programming</name>
<author>John Smith</author>
<price>15.00</price>
<name>Web Development</name>
<author>Jane Doe</author>
<price>20.00</price>
XML;
$doc- >loadXML($xml);
$result = array();
$item = array( "name" => $book->getElementsByTagName("name")->item(0)->nodeValue,
"author" => $book->getElementsByTagName("author")->item(0)->nodeValue,
"price" => $book->getElementsByTagName("price")->item(0)->nodeValue
array_push($result, $item);
}
?>
<name>PHP Programming</name>
<author>John Smith</author>
<price>15.00</price>
< ;book> <name>Web Development</name>
<author>Jane Doe</author>
<price>20.00</price>
XML;
$reader = new XMLReader();
$reader->xml($xml);
if ($reader->nodeType == XMLReader::ELEMENT && $reader->name == 'book') { $book = array();
while ($reader->read()) {
if ($reader->nodeType == XMLReader::ELEMENT) {
$name = $reader->name;
$reader->read();
$book[$name] = $reader->value;
} elseif ($reader->nodeType == XMLReader::END_ELEMENT && $reader->name == 'book') {
array_push($data, $book);
break;
}
}
}
?>