PHP xml_set_element_handler()Fonctions


PHP XML 参考手册Manuel de référence complet PHP XML

Définition et utilisation

La fonction xml_set_element_handler() spécifie les fonctions à appeler au début et à la fin des éléments dans un document XML.

Si elle réussit, cette fonction renvoie TRUE. Si elle échoue, elle renvoie FALSE.

Syntaxe

xml_set_element_handler(parser,start,end)

Parameters Description
parser Requis. Spécifie l'analyseur XML à utiliser.
start Requis. Spécifie la fonction à appeler lorsqu'un élément commence.
end Requis. Spécifie la fonction à appeler lorsqu'un élément se termine.

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

Parameters Description
parser Requis. Spécifie une variable contenant l'analyseur XML qui appelle le gestionnaire.
name Requis. Spécifie une variable contenant le nom de l'élément (sous forme de chaîne) dans le fichier XML qui déclenche la fonction.
data Requis. Spécifie un tableau contenant les attributs de l'élément (sous forme de chaînes) dans le fichier XML.

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

Parameters Description
parser Requis. Spécifie une variable contenant l'analyseur XML qui appelle le gestionnaire.
name Requis. Spécifie une variable contenant le nom de l'élément (sous forme de chaîne) dans le fichier XML qui déclenche la fonction.


Conseils et notes

Remarque :Les paramètres start et end peuvent être un tableau contenant une référence à un 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 "À : ";
break;
case "FROM":
echo "De : ";
break;
case "HEADING":
echo "Titre : ";
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);
?>

La sortie du code ci-dessus est affichée ci-dessous :

-- Note --
À : Tove
De : Jani
Titre : Rappel
Message : Ne m'oublie pas ce week-end !


PHP XML 参考手册Manuel de référence complet PHP XML Autres extensions