Função PHP xml_set_notation_decl_handler()
Definição e uso
A função xml_set_notation_decl_handler() define a função chamada quando o parser encontrar declarações de símbolo no documento XML.
Se o processador for bem estabelecido, essa função retornará true; caso contrário, retornará false.
Nota:“Declaração de símbolo”, em inglês é notation declaration, e também há alguns documentos que a traduzem como “Declaração de comentário”.
Sintaxe
xml_set_notation_decl_handler(parser,handler)
Parâmetros | Descrição |
---|---|
parser | Obrigatório. Define o XML parser a ser usado. |
handler | Obrigatório. Define a função chamada quando o parser encontrar declarações de símbolo. |
por handler A função especificada pelos parâmetros deve ter seis parâmetros:
Parâmetros | Descrição |
---|---|
parser | Obrigatório. Define uma variável que contém o XML parser chamado pelo processador. |
name | Obrigatório. Define a variável que contém o nome do entidade. |
base |
Obrigatório. Define uma variável que contém a base para o identificador do sistema do entidade (system_id). Atualmente, esse parâmetro geralmente é configurado como uma string vazia. |
system_id | Obrigatório. Define a variável que contém o identificador do sistema do entidade. |
public_id | Obrigatório. Define a variável que contém o identificador público do entidade. |
notation | Obrigatório. Define uma variável que contém o símbolo que identifica o tipo de dados da entidade. |
Descrição
handler Os parâmetros também podem ser um array que contém referências de objetos e nomes de métodos.
Exemplo
<?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("Erro XML: %s na linha %d", xml_error_string(xml_get_error_code($parser)), xml_get_current_line_number($parser))); } xml_parser_free($parser); ?>