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.
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.
<?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'analyse:" . xml_error_string(xml_get_error_code($parser)));
}
xml_parser_free($parser);
?>
É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 : 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.
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.
<?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";
}
?>
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 : 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.