La fonction xml_set_external_entity_ref_handler() spécifie la fonction appelée lorsque l'analyseur trouve une entité externe dans le document XML.
En cas de succès, la fonction renvoie TRUE. En cas d'échec, renvoie FALSE.
xml_set_external_entity_ref_handler (analyseur, gestionnaire)
paramètre | décrire |
---|---|
analyseur | Requis. Spécifie l'analyseur XML à utiliser. |
gestionnaire | Requis. Spécifie la fonction à appeler lorsque l'analyseur trouve une entité externe. |
La fonction spécifiée par le paramètre "handler" doit avoir cinq paramètres :
paramètre | décrire |
---|---|
analyseur | Requis. Spécifie une variable contenant l'analyseur XML qui appelle le processeur. |
nom | Requis. Spécifie une variable contenant le nom de l'entité externe. |
base | Requis. Spécifie la base de résolution des identifiants système (system_id) des entités externes. Actuellement, ce paramètre est généralement défini sur NULL. |
id_système | Requis. Spécifie l'identifiant système de l'entité externe. |
public_id | Requis. Spécifie l'identifiant public de l'entité externe. |
Remarque : Le paramètre handler peut également être un tableau contenant des références d'objet et des noms de méthodes.
<?php$parser=xml_parser_create();function char($parser,$data) { echo $data; }function ext_ent_handler($parser,$ent,$base,$sysID,$pubID) { echo "$ent<br />"; echo "$sysID<br />"; echo "$pubID<BR />"; }xml_set_character_data_handler($parser,"char");xml_set_external_entity_ref_handler($parser, "ext_ent_handler");$fp=fopen("test.xml","r");while ($data=fread($fp,4096)) { xml_parse($parser,$data,feof($fp)) ou mourir (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);?>