Maison > développement back-end > Problème PHP > Comment convertir XML en tableau en php

Comment convertir XML en tableau en php

PHPz
Libérer: 2023-04-26 09:30:21
original
529 Les gens l'ont consulté

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.

  1. Utilisation de SimpleXML

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>
Copier après la connexion
Copier après la connexion
Copier après la connexion


< ;book>

  <name>Web Development</name>
  <author>Jane Doe</author>
  <price>20.00</price>
Copier après la connexion
Copier après la connexion
Copier après la connexion



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 (<<

  1. Utiliser DOM

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 = <<

  <name>PHP Programming</name>
  <author>John Smith</author>
  <price>15.00</price>
Copier après la connexion
Copier après la connexion
Copier après la connexion


  <name>Web Development</name>
  <author>Jane Doe</author>
  <price>20.00</price>
Copier après la connexion
Copier après la connexion
Copier après la connexion



XML;

$doc = new DOMDocument();
$doc- >loadXML($xml);

$books = $doc->getElementsByTagName("book");
$result = array();

foreach ($books as $book) {
$item = array(

  "name" => $book->getElementsByTagName("name")->item(0)->nodeValue,
  "author" => $book->getElementsByTagName("author")->item(0)->nodeValue,
  "price" => $book->getElementsByTagName("price")->item(0)->nodeValue
Copier après la connexion

);
array_push($result, $item);
}

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.

  1. Utilisation de XMLReader

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 = <<

  <name>PHP Programming</name>
  <author>John Smith</author>
  <price>15.00</price>
Copier après la connexion
Copier après la connexion
Copier après la connexion


< ;book>

  <name>Web Development</name>
  <author>Jane Doe</author>
  <price>20.00</price>
Copier après la connexion
Copier après la connexion
Copier après la connexion



XML;

$data = array();
$reader = new XMLReader();
$reader->xml($xml);

while ($reader->read()) {
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;
     }
  }
Copier après la connexion

}
}

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal