La función xml_set_external_entity_ref_handler() especifica la función que se llama cuando el analizador encuentra una entidad externa en el documento XML.
Si tiene éxito, la función devuelve VERDADERO. Si falla, devuelve FALSO.
xml_set_external_entity_ref_handler(analizador,controlador)
parámetro | describir |
---|---|
analizador | Requerido. Especifica el analizador XML que se utilizará. |
entrenador de animales | Requerido. Especifica la función que se llamará cuando el analizador encuentre una entidad externa. |
La función especificada por el parámetro "handler" debe tener cinco parámetros:
parámetro | describir |
---|---|
analizador | Requerido. Especifica una variable que contiene el analizador XML que llama al procesador. |
nombre | Requerido. Especifica una variable que contiene el nombre de la entidad externa. |
base | Requerido. Especifica la base para resolver identificadores del sistema (system_id) de entidades externas. Actualmente, este parámetro suele estar establecido en NULL. |
id_sistema | Requerido. Especifica el identificador del sistema de la entidad externa. |
id_público | Requerido. Especifica el identificador público de la entidad externa. |
Nota: El parámetro del controlador también puede ser una matriz que contenga referencias de objetos y nombres de métodos.
<?php$parser=xml_parser_create();función char($parser,$datos) { echo $datos; }función 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)) o morir (sprintf("Error XML: %s en la línea %d", xml_error_string(xml_get_error_code($parser)), xml_get_current_line_number($parser))); }xml_parser_free($parser);?>