Analyseur XML PHP pour débutants
Analyseur XML
Tous les navigateurs modernes ont des analyseurs XML intégrés.
L'analyseur XML convertit le document XML en un objet XML DOM - un objet qui peut être manipulé via JavaScript
<?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>
Ensuite, nous écrivons un fichier php pour faire fonctionner le code ci-dessus
<?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); ?>
Principe de fonctionnement :
Initialisez l'analyseur XML via la fonction xml_parser_create()
Créez des fonctions qui correspondent à différents gestionnaires d'événements
Ajoutez xml_set_element_handler( ) fonction pour définir quelle fonction est exécutée lorsque l'analyseur rencontre les balises de début et de fin
Ajouter la fonction xml_set_character_data_handler() pour définir quelle fonction est exécutée lorsque l'analyseur rencontre des données de caractères
Passer la fonction xml_parse() pour analyser le fichier "test.xml"
En cas d'erreur, ajoutez la fonction xml_error_string() pour convertir l'erreur XML en description textuelle
Appelez la fonction xml_parser_free() pour libérer la mémoire d'allocation pour la fonction xml_parser_create()