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);
?>