PHP Analyseur 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 des événements.
Regardez la fraction XML suivante :
<from>Jani</from> Un analyseur basé sur des événements rapporte le XML ci-dessus sous la forme d'une série de trois événements :
- Élément de début : from
- Début de la section CDATA, valeur : Jani
- Élément de fermeture : from
Les fonctions de l'analyseur XML Expat 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>Rappel</heading>
<body>N'oubliez pas de penser à moi ce week-end !</body>
</note> Initialiser l'analyseur XML Expat
Nous allons initialiser l'analyseur XML Expat en PHP, définir des gestionnaires pour différents événements XML, puis analyser le fichier XML.
Exemple
<?php
// Initialiser l'analyseur XML
$parser=xml_parser_create();
// Fonction à utiliser au début d'un élément
function start($parser,$element_name,$element_attrs) {
switch($element_name) {
case "NOTE":
echo "-- Note --<br>";
break;
case "TO":
echo "À : ";
break;
case "FROM":
echo "De : ";
break;
case "HEADING":
echo "Titre : ";
break;
case "BODY":
echo "Message : ";
}
}
// Fonction à utiliser à la fin d'un élément
function stop($parser,$element_name) {
echo "<br>";
}
// Fonction à utiliser lors de la recherche de données de caractères
function char($parser,$data) {
echo $data;
}
// Spécifier le gestionnaire d'éléments
xml_set_element_handler($parser,"start","stop");
// Spécifier le gestionnaire de données
xml_set_character_data_handler($parser,"char");
// Ouvrir le fichier XML
$fp=fopen("note.xml","r");
// Lire les données
while ($data=fread($fp,4096)) {
xml_parse($parser,$data,feof($fp)) or
die (sprintf("Erreur XML : %s à la ligne %d",
xml_error_string(xml_get_error_code($parser)),
xml_get_current_line_number($parser)));
}
// Libérer l'analyseur XML
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
- Ajouter 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 - Ajouter la
xml_set_character_data_handler()fonction pour spécifier quelle fonction sera exécutée lorsque l'analyseur rencontre des données de caractères - Analyser le fichier "note.xml" avec la
xml_parse()fonction - En cas d'erreur, ajouter
xml_error_string()fonction pour convertir une erreur XML en description textuelle - Appeler la
xml_parser_free()fonction pour libérer la mémoire allouée avec laxml_parser_create()fonction
Plus sur l'analyseur XML Expat PHP
Pour plus d'informations sur les fonctions Expat de PHP, visitez notre Référence de l'analyseur XML PHP .