PHP xml_set_unparsed_entity_decl_handler()Función


PHP XML 参考手册Manual de referencia completo de PHP XML

Definición y uso

La función xml_set_unparsed_entity_decl_handler() especifica la función que se llamará cuando el analizador encuentre una entidad no analizada en un documento XML.

Si tiene éxito, la función devuelve TRUE. Si falla, devuelve FALSE.

Sintaxis

xml_set_unparsed_entity_decl_handler(parser,handler)

Parámetros Descripción
parser Requerido. Especifica el analizador XML a utilizar.
handler Especifica la función que se llamará cuando el analizador encuentre una entidad no analizada.

La función especificada por el parámetro "handler" debe tener seis parámetros:

Parámetros Descripción
parser Requerido. Especifica una variable que contenga el analizador XML que llama al procesador.
name Requerido. Especifica una variable que contenga el nombre de la entidad.
base Requerido. Especifica una variable que contenga la base del identificador de sistema (system_id) para la entidad analizada. Actualmente, este parámetro generalmente se establece en NULL.
system_id Requerido. Especifica una variable que contenga el identificador de sistema de la entidad.
public_id Requerido. Especifica una variable que contenga el identificador público de la entidad.
notation Requerido. Especifica una variable que contenga la notación que identifica el tipo de datos de la entidad.


Consejos y comentarios

Nota:El parámetro handler también puede ser un array que contenga una referencia a un objeto y el nombre del método.


Ejemplo

<?php $parser=xml_parser_create();

function char($parser,$data)
{
echo $data;
}

function unparsed_ent_handler($parser,$entname,
$base,$sysID,$pubID,$notname)
{
print "$entname<br />";
print "$sysID<br />";
print "$pubID<br />";
print "$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($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);
?>


PHP XML 参考手册Manual de referencia completo de PHP XML Otras extensiones