Función PHP xml_set_notation_decl_handler()
Definición y uso
La función xml_set_notation_decl_handler() especifica la función que se llama cuando el analizador encuentra una declaración de símbolo en el documento XML.
Si el procesador se crea con éxito, esta función devuelve true; de lo contrario, devuelve false.
Notas:“Declaración de símbolo”, en inglés se conoce como notation declaration, y también se traduce en algunas publicaciones como “declaración de comentario”.
Sintaxis
xml_set_notation_decl_handler(parser,Handler)
Parámetros | Descripción |
---|---|
parser | Necesario. Especifica el analizador XML a usar. |
Handler | Necesario. Función que se llama cuando el analizador encuentra una declaración de símbolo. |
Por Handler La función especificada por el parámetro debe tener seis parámetros:
Parámetros | Descripción |
---|---|
parser | Necesario. Variable que contiene el analizador XML utilizado para llamar al procesador. |
name | Necesario. Variable que especifica el nombre del ente. |
base |
Necesario. Variable que contiene la base del identificador del sistema del ente (system_id). Actualmente, este parámetro generalmente se establece en una cadena vacía. |
system_id | Necesario. Variable que especifica el identificador del sistema del ente. |
public_id | Necesario. Variable que especifica el identificador común del ente. |
notation | Obligatorio. Especifica una variable que contenga el símbolo que identifica el tipo de datos de la entidad. |
Descripción
Handler Los parámetros también pueden 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 not_decl_handler($parser,$not,$base,$sysID,$pubID) { echo "$not<br />"; echo "$sysID<br />"; echo "$pubID<BR />"; } xml_set_character_data_handler($parser,"char"); xml_set_notation_decl_handler($parser, "not_decl_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); ?>