PHP xml_set_unparsed_entity_decl_handler()Función
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);
?>
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);
?>
Manual de referencia completo de PHP XML Otras extensiones