Função PHP xml_set_external_entity_ref_handler()
Definição e uso
A função xml_set_external_entity_ref_handler() define a função chamada quando o parser encontrar a entidade externa no documento XML.
Se o processador for bem estabelecido, a função retornará true; caso contrário, retornará false.
Sintaxe
xml_set_external_entity_ref_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 a entidade externa. |
por handler A função especificada pelo parâmetro 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 uma variável que contém o nome da entidade externa. |
base |
Obrigatório. Define uma variável que contém a base para o identificador do sistema (system_id) da entidade externa. O parâmetro atualmente geralmente é configurado como uma string vazia. |
system_id | Obrigatório. Define a variável que contém o identificador do sistema da entidade externa. |
public_id | Obrigatório. Define a variável que contém o identificador público da entidade externa. |
Descrição
handler Os parâmetros também podem ser um array que contém referências a objetos e nomes de métodos.
Exemplo
<?php $parser=xml_parser_create(); function char($parser,$data) { echo $data; } function ext_ent_handler($parser,$ent,$base,$sysID,$pubID) { echo "$ent"; echo "$sysID"; echo "$pubID"; } xml_set_character_data_handler($parser,"char"); xml_set_external_entity_ref_handler($parser, "ext_ent_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); ?>