La fonction xml_parse() analyse les documents XML.
En cas de succès, la fonction renvoie TRUE. En cas d'échec, renvoie FALSE.
xml_parse(analyseur,xml,fin)
paramètre | décrire |
---|---|
analyseur | Requis. Spécifie l'analyseur XML à utiliser. |
XML | Requis. Spécifie les données XML à analyser. |
fin | Facultatif. Si ce paramètre est TRUE, les données du paramètre "xml" sont la dernière donnée de l'analyse en cours. Remarque : Les erreurs d'entité sont signalées à la fin de l'analyse, et uniquement lorsque le paramètre "end" est TRUE. |
Astuce : Pour créer un analyseur XML, utilisez la fonction xml_parser_create().
Fichier XML
<?xml version="1.0" encoding="ISO-8859-1"?><note><to>Tove</to><from>Jani</from><heading>Rappel</heading><body>Don ne m'oublie pas ce week-end !</body></note>
Code PHP
<?php$parser=xml_parser_create();function char($parser,$data) { echo $data; }xml_set_character_data_handler($parser,"char");$fp=fopen("test.xml","r") ;while ($data=fread($fp,4096)) { xml_parse($parser,$data,feof($fp)) ou die (sprintf("Erreur XML : %s à la ligne %d", xml_error_string(xml_get_error_code($parser)), xml_get_current_line_number($parser)));
Le résultat du code ci-dessus ressemble à ceci :
Tove Jani Rappel Ne m'oubliez pas ce week-end !
Utiliser le même fichier XML mais afficher les données XML de différentes manières :
<?php$parser=xml_parser_create();function start($parser,$element_name,$element_attrs) { switch($element_name) { case "NOTE": echo "-- Note --<br />"; "À": echo "À: "; cas "DE": echo "De: "; cas "HEADING": echo "En-tête: "; echo "Message : "; } }function stop($parser,$element_name) { echo "<br />"; }function char($parser,$data) { echo $data; ,"stop");xml_set_character_data_handler($parser,"char");$fp=fopen("test.xml","r");while ($data=fread($fp,4096)) { xml_parse($parser,$data,feof($fp)) ou die (sprintf("Erreur XML : %s à la ligne %d", xml_error_string(xml_get_error_code($parser )), xml_get_current_line_number($parser))); }xml_parser_free($parser);?>
Le résultat du code ci-dessus ressemble à ceci :
-- Remarque --À : ToveFrom : JaniHeading : ReminderMessage : Ne m'oubliez pas ce week-end !