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

Comment convertir XML en tableau en php

PHPz
PHPzoriginal
2023-04-24 10:52:402693parcourir

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 :

  1. Utilisez la fonction simplexml_load_file() pour charger le fichier XML. L'exemple de code est le suivant :
$xml = simplexml_load_file('example.xml');
  1. Convertissez l'objet SimpleXML en un tableau. L'exemple de code est le suivant :
$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.

  1. Traitez le tableau converti et implémentez la logique métier.

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 :

  1. Utilisez la méthode load() pour charger le fichier XML. L'exemple de code est le suivant :
$dom = new DOMDocument();
$dom->load('example.xml');
  1. Obtenez le nœud racine. suit :
$root = $dom->documentElement;
  1. Traversez chaque élément sous le nœud racine du nœud enfant, convertissez le nom et la valeur du nœud en un tableau.

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.

  1. Traitez le tableau converti et implémentez la logique métier.

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 :

  1. Créez un objet analyseur XML, l'exemple de code est le suivant :
$xml_parser = xml_parser_create();
  1. Définissez la fonction de gestionnaire d'événements, l'exemple de code est le suivant :
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.

  1. Analyser les fichiers XML, l'exemple de code est le suivant :
$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.

  1. Traitez le tableau converti et implémentez la logique métier.

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!

Déclaration:
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