Maison > Article > développement back-end > À propos des bases de l'analyseur PHP XML Expat
L'analyseur PHP XML Expat joue un rôle important en PHP. Cet article expliquera en détail ses points de connaissances associés.
Qu'est-ce que XML ?
XML est utilisé pour décrire les données, l'accent étant mis sur la nature des données. Les fichiers XML décrivent la structure des données.
En XML, il n'y a pas de balises prédéfinies. Vous devez définir vos propres balises.
Pour en savoir plus sur XML, visitez notre tutoriel XML.
Qu’est-ce qu’Expat ?
Pour lire et mettre à jour - créer et traiter - un document XML, vous avez besoin d'un analyseur XML.
Il existe deux types de base d'analyseurs XML :
Analyseurs arborescents : cet analyseur convertit un document XML en une structure arborescente. Il analyse l'intégralité du document et donne accès aux éléments de l'arborescence, tels que le modèle objet de document (DOM).
Analyseur basé sur les événements : traitez un document XML comme une série d'événements. Lorsqu'un événement spécifique se produit, l'analyseur appellera la fonction pour le gérer.
L'analyseur Expat est un analyseur basé sur des événements.
Les analyseurs basés sur les événements se concentrent sur le contenu des documents XML plutôt que sur leur structure. Pour cette raison, les analyseurs basés sur des événements sont capables d'accéder aux données plus rapidement que les analyseurs basés sur des arborescences.
Regardez le fragment XML suivant :
66fd2ada9ebb04d4250c850dc1e3737eJani73e20527c4b39a5569bf640e17eb894e
L'analyseur basé sur les événements rapporte le XML ci-dessus sous la forme d'une série de trois événements :
Élément de départ : from
Section de départ CDATA, valeur : Jani
Élément de fermeture : from
L'exemple XML ci-dessus contient du XML bien formé. Toutefois, cette instance n’est pas du XML valide, car aucune déclaration de type de document (DTD) ne lui est associée.
Cependant, cela ne fait aucune différence lors de l'utilisation de l'analyseur Expat. Expat est un analyseur qui ne vérifie pas la validité et ignore toute DTD.
En tant qu'analyseur XML non validé basé sur des événements, Expat est rapide et léger, ce qui le rend idéal pour les applications Web PHP.
Remarque : Le document XML doit être bien formé, sinon Expat générera une erreur.
Installation
La fonction d'analyseur XML Expat fait partie intégrante du noyau PHP. Aucune installation n'est requise pour utiliser ces fonctions.
Fichier XML
Le fichier XML suivant sera utilisé dans notre exemple :
<?xml version="1.0" encoding="ISO-8859-1"?> <note> <to>Tove</to> <from>Jani</from> <heading>Reminder</heading> <body>Don't forget me this weekend!</body> </note>
Initialisation de l'analyseur XML
Nous devons initialiser l'analyseur XML en PHP, définir des gestionnaires pour différents événements XML, puis analyser ce fichier XML.
Instance
<?php //Initialize the XML parser $parser=xml_parser_create(); //Function to use at the start of an element function start($parser,$element_name,$element_attrs) { switch($element_name) { case "NOTE": echo "-- Note --<br>"; break; case "TO": echo "To: "; break; case "FROM": echo "From: "; break; case "HEADING": echo "Heading: "; break; case "BODY": echo "Message: "; } } //Function to use at the end of an element function stop($parser,$element_name) { echo "<br>"; } //Function to use when finding character data function char($parser,$data) { echo $data; } //Specify element handler xml_set_element_handler($parser,"start","stop"); //Specify data handler xml_set_character_data_handler($parser,"char"); //Open XML file $fp=fopen("test.xml","r"); //Read data while ($data=fread($fp,4096)) { xml_parse($parser,$data,feof($fp)) or die (sprintf("XML Error: %s at line %d", xml_error_string(xml_get_error_code($parser)), xml_get_current_line_number($parser))); } //Free the XML parser xml_parser_free($parser); ?>
Le code ci-dessus affichera :
-- Remarque --
À : Tove
De : Jani
En-tête : Rappel
Message : Ne m'oubliez pas ce week-end !
Principe de fonctionnement :
Initialiser l'analyseur XML via la fonction xml_parser_create()
Créer différents Traitement des événements Fonctions du programme
Ajoutez la fonction xml_set_element_handler() pour définir quelle fonction est exécutée lorsque l'analyseur rencontre les balises de début et de fin
Ajoutez la fonction xml_set_character_data_handler() pour définir quand lequel La fonction est exécutée lorsque l'analyseur rencontre des données de caractères
Utilisez la fonction xml_parse() pour analyser le fichier "test.xml"
En cas d'erreur, ajoutez la fonction xml_error_string() à convertir l'erreur XML Pour la description du texte
Appelez la fonction xml_parser_free() pour libérer la mémoire allouée à la fonction xml_parser_create()
Cet article explique en détail les points de connaissances de base de PHP XML Expat analyseur, et vous pourrez en savoir plus. Veuillez suivre le site Web php chinois pour afficher les informations.
Recommandations connexes :
Contenu connexe sur la base de données PHP ODBC
Connaissance connexe de l'instruction PHP MySQL Delete
Contenu associé à l'instruction de mise à jour PHP MySQL
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!