Funzione PHP xml_set_notation_decl_handler()

Definizione e uso

La funzione xml_set_notation_decl_handler() definisce la funzione chiamata quando l'analizzatore trova la dichiarazione del simbolo nel documento XML.

Se il processore viene creato con successo, la funzione restituirà true; altrimenti restituirà false.

Nota:“Dichiarazione di simbolo”, in inglese si chiama notation declaration, e alcune fonti la traducano anche come “Dichiarazione di commento”.

Sintassi

xml_set_notation_decl_handler(parser,Handler)
Parametro Descrizione
parser Obbligatorio. Definire l'analizzatore XML da utilizzare.
Handler Obbligatorio. Funzione chiamata quando l'analizzatore trova la dichiarazione del simbolo.

Da Handler La funzione definita dal parametro deve avere sei parametri:

Parametro Descrizione
parser Obbligatorio. Variabile che contiene l'analizzatore XML chiamato dal processore.
name Obbligatorio. Variabile che contiene il nome dell'entità.
base

Obbligatorio. Variabile che contiene la base per l'identificatore di sistema dell'entità (system_id).

Attualmente questo parametro di solito viene impostato su una stringa vuota.

system_id Obbligatorio. Variabile che contiene l'identificatore di sistema dell'entità.
public_id Obbligatorio. Variabile che contiene l'identificatore pubblico dell'entità.
notation Obbligatorio. Specifica una variabile che contiene il simbolo che identifica il tipo di dati dell'entità.

Descrizione

Handler Il parametro può anche essere un array che contiene riferimenti agli oggetti e i nomi dei metodi.

Esempio

<?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("Errore XML: %s alla riga %d", 
  xml_error_string(xml_get_error_code($parser)),
  xml_get_current_line_number($parser)));
  }
xml_parser_free($parser);
?>