Derniers tutoriels de développement web
 

PHP xml_set_element_handler() Function


<Complete Référence XML PHP

Définition et utilisation

Le xml_set_element_handler() fonction spécifie les fonctions à appeler au début et à la fin d'un élément dans le document XML.

Cette fonction retourne TRUE en cas de succès, ou si une erreur survient.

Syntaxe

xml_set_element_handler(parser,start,end)

Paramètre La description
parser Champs obligatoires. Indique l'analyseur XML à utiliser
start Champs obligatoires. Indique une fonction à appeler au début d'un élément
end Champs obligatoires. Spécifie une fonction à appeler à la fin d'un élément

La fonction spécifiée par le "start" paramètre doit avoir trois paramètres:

Paramètre La description
parser Champs obligatoires. Indique une variable contenant l'analyseur XML qui appelle le gestionnaire
name Champs obligatoires. Indique une variable contenant le nom des éléments, qui déclenche cette fonction, à partir du fichier XML en tant que chaîne
data Champs obligatoires. Indique un tableau contenant les elements les attributs du fichier XML en tant que chaîne

La fonction spécifiée par la "end" paramètre doit avoir deux paramètres:

Paramètre La description
parser Champs obligatoires. Indique une variable contenant l'analyseur XML qui appelle le gestionnaire
name Champs obligatoires. Indique une variable contenant le nom des éléments, qui déclenche cette fonction, à partir du fichier XML en tant que chaîne

Conseils et notes

Note: Les paramètres de début et de fin peuvent aussi être un tableau contenant une référence d'objet et un nom de méthode.


Exemple

<?php
$parser=xml_parser_create();

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 stop($parser,$element_name)
  {
  echo "<br />";
  }

function char($parser,$data)
  {
  echo $data;
  }

xml_set_element_handler($parser,"start","stop");
xml_set_character_data_handler($parser,"char");
$fp=fopen("test.xml","r");

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)));
  }

xml_parser_free($parser);
?>

au-dessus de la sortie du code sera:

-- Note --
To: Tove
From: Jani
Heading: Reminder
Message: Don't forget me this weekend!

<Complete Référence XML PHP