Position actuelle: Accueil> Derniers articles> Comment analyser les données XML via la bibliothèque de fonctions XML_PARSE et DOMXML

Comment analyser les données XML via la bibliothèque de fonctions XML_PARSE et DOMXML

M66 2025-05-12

Dans le développement d'applications Web moderne, XML (langage de balisage extensible) est l'un des formats d'échange de données et est toujours largement utilisé dans de nombreux scénarios. PHP fournit une variété de bibliothèques de fonctions pour le traitement de XML, parmi lesquelles XML_PARSE et DOMXML sont deux méthodes d'analyse courantes, chacune adaptée à des besoins différents. Cet article présentera ces deux méthodes séparément et fournira des exemples de code pratiques pour vous aider à maîtriser efficacement les compétences d'analyse des données XML.

1. Utilisez XML_Parse pour l'analyse basée sur les événements

XML_PARSE est une fonction d'analyse XML dans PHP et appartient à une méthode d'analyse basée sur des événements (également connue sous le nom d'analyse de sax). Il déclenche une fonction de rappel spécifique pendant le processus de lecture des données XML, ce qui convient à la gestion de grands fichiers XML car il ne nécessite pas que l'ensemble du document soit chargé en mémoire.

Exemple de code:

 <?php
$xml_data = <<<XML
<books>
    <book>
        <title>PHP Pratique de programmation</title>
        <author>Zhang San</author>
    </book>
    <book>
        <title>XML et Web Servir</title>
        <author>Li si</author>
    </book>
</books>
XML;

$parser = xml_parser_create("UTF-8");

function startElement($parser, $name, $attrs) {
    echo "Élément de démarrage:$name\n";
}

function endElement($parser, $name) {
    echo "Élément final:$name\n";
}

function characterData($parser, $data) {
    $data = trim($data);
    if (!empty($data)) {
        echo "données:$data\n";
    }
}

xml_set_element_handler($parser, "startElement", "endElement");
xml_set_character_data_handler($parser, "characterData");

if (!xml_parse($parser, $xml_data, true)) {
    die("XML Erreur d&#39;analyse:" . xml_error_string(xml_get_error_code($parser)));
}

xml_parser_free($parser);
?>

Résultat de sortie:

 Élément de démarrage:BOOKS
Élément de démarrage:BOOK
Élément de démarrage:TITLE
données:PHP Pratique de programmation
Élément final:TITLE
Élément de démarrage:AUTHOR
données:Zhang San
Élément final:AUTHOR
Élément final:BOOK
Élément de démarrage:BOOK
Élément de démarrage:TITLE
données:XML et Web Servir
Élément final:TITLE
Élément de démarrage:AUTHOR
données:Li si
Élément final:AUTHOR
Élément final:BOOK
Élément final:BOOKS

Avantages et scénarios applicables

  • Avantages : vitesse d'analyse rapide et faible utilisation de la mémoire.

  • Scénarios applicables : grands fichiers XML, seulement doivent être lus sans modifier le contenu XML.

2. Utilisez DOMXML pour effectuer une analyse basée sur le modèle d'objet de document (DOM)

DOMXML fournit une méthode de traitement XML plus structurée qui vous permet de manipuler des données XML comme HTML DOM en chargeant l'ensemble du document XML dans une arborescence DOM.

Remarque : Depuis PHP5, DOMXML a été remplacé par des extensions DOM (c'est-à-dire la classe DomDocument), et cet article adopte ce dernier exemple.

Exemple de code:

 <?php
$xml_string = <<<XML
<books>
    <book>
        <title>PHP Pratique de programmation</title>
        <author>Zhang San</author>
        <link>https://www.m66.net/book/php</link>
    </book>
    <book>
        <title>XML et Web Servir</title>
        <author>Li si</author>
        <link>https://www.m66.net/book/xml</link>
    </book>
</books>
XML;

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

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

foreach ($books as $book) {
    $title = $book->getElementsByTagName("title")->item(0)->nodeValue;
    $author = $book->getElementsByTagName("author")->item(0)->nodeValue;
    $link = $book->getElementsByTagName("link")->item(0)->nodeValue;

    echo "Titre de livre:$title\n";
    echo "auteur:$author\n";
    echo "Lien:$link\n\n";
}
?>

Résultat de sortie:

 Titre de livre:PHP Pratique de programmation
auteur:Zhang San
Lien:https://www.m66.net/book/php

Titre de livre:XML et Web Servir
auteur:Li si
Lien:https://www.m66.net/book/xml

Avantages et scénarios applicables

  • Avantages : structure claire et facile à utiliser, adaptée à la lecture, à la modification et à la génération de XML.

  • Scénarios applicables : les fichiers XML de petite à moyenne taille, la modification de la structure ou les nouveaux documents doivent être créés.