Derniers tutoriels de développement web
 

PHP XML Parser Expat


Le XML intégré Expat Parser permet de traiter les documents XML en PHP.


Le XML Parser Expat

L'analyseur Expat est un analyseur événementiel.

Regardez la fraction XML suivant:

<from>Jani</from>

Un analyseur événementiel rapporte le XML ci-dessus comme une série de trois événements:

  • élément de départ: à partir de
  • Début de la section CDATA, valeur: Jani
  • Fermer élément: de

Les fonctions XML Parser Expat font partie du noyau de PHP. Il n'y a pas d'installation 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>

XML Expat Initialisation Parser

Nous voulons initialiser le XML Parser Expat en PHP, définir des gestionnaires d'événements XML différents, 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);
?>
»Exécuter exemple

Exemple expliqué:

  1. Initialiser l'analyseur XML avec le xml_parser_create() fonction
  2. Créer des fonctions à utiliser avec les différents gestionnaires d'événements
  3. Ajouter la xml_set_element_handler() fonction pour spécifier la fonction sera exécutée lorsque l'analyseur rencontre les balises d'ouverture et de fermeture
  4. Ajouter la xml_set_character_data_handler() fonction pour spécifier quelle fonction exécutera lorsque l'analyseur rencontre des données de caractère
  5. Parser le fichier "note.xml" avec le xml_parse() fonction
  6. En cas d'erreur, ajoutez xml_error_string() fonction pour convertir une erreur XML à une description textuelle
  7. Appelez le xml_parser_free() fonction de libérer la mémoire allouée à la xml_parser_create() fonction

Plus XML PHP Expat Parser

Pour plus d' informations sur les fonctions PHP Expat, visitez notre XML PHP Parser Référence.