Analyseur PHP XML Expat
L'analyseur XML Expat intégré permet de traiter des documents XML en PHP.
L'analyseur XML Expat
L'analyseur Expat est un analyseur basé sur les événements.
Regardez la fraction XML suivante :
<from>Jani</from>
Un analyseur basé sur les événements signale le XML ci-dessus sous la forme d'une série de trois événements :
- Élément de départ : de
- Démarrer la section CDATA, valeur : Jani
- Fermer l'élément : de
Les fonctions XML Expat Parser font partie du noyau PHP. Aucune installation n'est nécessaire pour utiliser ces fonctions.
Le fichier XML
Le fichier XML "note.xml" sera utilisé dans l'exemple ci-dessous :
<?xml version="1.0" encoding="UTF-8"?>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
Initialisation de l'analyseur XML Expat
Nous voulons initialiser l'analyseur XML Expat en PHP, définir des gestionnaires pour différents événements XML, puis analyser le fichier XML.
Exemple
<?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("note.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);
?>
Exemple expliqué :
- Initialiser l'analyseur XML avec la
xml_parser_create()
fonction - Créer des fonctions à utiliser avec les différents gestionnaires d'événements
- Ajoutez la
xml_set_element_handler()
fonction pour spécifier quelle fonction sera exécutée lorsque l'analyseur rencontre les balises d'ouverture et de fermeture - Ajoutez la
xml_set_character_data_handler()
fonction pour spécifier quelle fonction s'exécutera lorsque l'analyseur rencontre des données de caractères - Parser le fichier "note.xml" avec la
xml_parse()
fonction - En cas d'erreur, ajouter une
xml_error_string()
fonction pour convertir une erreur XML en une description textuelle - Appelez la
xml_parser_free()
fonction pour libérer la mémoire allouée avec laxml_parser_create()
fonction
Plus d'analyseur PHP XML Expat
Pour plus d'informations sur les fonctions PHP Expat, consultez notre Référence de l'analyseur PHP XML .