La función xml_set_unparsed_entity_decl_handler() especifica la función que se llama cuando el analizador encuentra una entidad no analizable en el documento XML.
Si tiene éxito, la función devuelve VERDADERO. Si falla, devuelve FALSO.
xml_set_unparsed_entity_decl_handler(analizador,controlador)
parámetro | describir |
---|---|
analizador | Requerido. Especifica el analizador XML que se utilizará. |
entrenador de animales | Especifica la función que se llamará cuando el analizador encuentre una entidad que no se puede analizar. |
La función especificada por el parámetro "handler" debe tener seis 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. |
base | Requerido. Especifica una variable que contiene la base para resolver el identificador del sistema de la entidad (system_id). Actualmente, este parámetro suele estar establecido en NULL. |
id_sistema | Requerido. Especifica una variable que contiene el identificador del sistema de la entidad. |
id_público | Requerido. Especifica una variable que contiene el identificador público de la entidad. |
notación | Requerido. Especifica una variable que contiene un símbolo que identifica el tipo de datos de la entidad. |
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,$data) { echo $data; }función unparsed_ent_handler($parser,$entname,$base,$sysID,$pubID,$notname) { print "$ entname<br />"; imprimir "$sysID<br />"; imprimir "$pubID<br />"; imprimir "$notname<br />"; }xml_set_character_data_handler($parser,"char");xml_set_unparsed_entity_decl_handler($parser,"unparsed_ent_handler");$fp=fopen("test.xml","r"); while ($data=fread($fp,4096)) { xml_parse($analizador,$datos,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);?>