Función PHP xml_set_external_entity_ref_handler()
Definición y uso
La función xml_set_external_entity_ref_handler() define la función que se llama cuando el analizador encuentra una entidad externa en el documento XML.
Si el procesador se crea con éxito, la función regresará true; de lo contrario, regresará false.
Sintaxis
xml_set_external_entity_ref_handler(parser,handler)
Parámetros | Descripción |
---|---|
parser | Requerido. Define el analizador XML a usar. |
handler | Requerido. Define la función que se llama cuando el analizador encuentra una entidad externa. |
Por handler La función especificada por el parámetro debe tener seis parámetros:
Parámetros | Descripción |
---|---|
parser | Requerido. Define una variable que contiene el analizador XML utilizado para llamar al procesador. |
name | Requerido. Define una variable que contiene el nombre de la entidad externa. |
base |
Requerido. Define una variable que contiene la base para el identificador de sistema (system_id) de la entidad externa. La parámetro actual generalmente se establece en una cadena vacía. |
system_id | Obligatorio. Variable que especifica el identificador del sistema del ente externo. |
public_id | Obligatorio. Variable que especifica el identificador público del ente externo. |
Descripción
handler El parámetro también puede ser un array que contenga referencias a objetos y nombres de métodos.
Ejemplo
<?php $parser=xml_parser_create(); function char($parser,$data) { echo $data; } function ext_ent_handler($parser,$ent,$base,$sysID,$pubID) { echo "$ent"; echo "$sysID"; echo "$pubID"; } 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)) or die (sprintf("Error de 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); ?>