A função xml_set_external_entity_ref_handler() especifica a função que é chamada quando o analisador encontra uma entidade externa no documento XML.
Se for bem-sucedido, a função retornará TRUE. Se falhar, retorna FALSE.
xml_set_external_entity_ref_handler(analisador,manipulador)
parâmetro | descrever |
---|---|
analisador | Obrigatório. Especifica o analisador XML a ser usado. |
manipulador | Obrigatório. Especifica a função a ser chamada quando o analisador encontrar uma entidade externa. |
A função especificada pelo parâmetro "handler" deve ter cinco parâmetros:
parâmetro | descrever |
---|---|
analisador | Obrigatório. Especifica uma variável que contém o analisador XML que chama o processador. |
nome | Obrigatório. Especifica uma variável que contém o nome da entidade externa. |
base | Obrigatório. Especifica a base para resolver identificadores de sistema (system_id) de entidades externas. Atualmente este parâmetro geralmente é definido como NULL. |
ID_do_sistema | Obrigatório. Especifica o identificador do sistema da entidade externa. |
id_público | Obrigatório. Especifica o identificador público da entidade externa. |
Nota: O parâmetro handler também pode ser uma matriz contendo referências de objetos e nomes de métodos.
<?php$parser=xml_parser_create();function char($parser,$data) { echo $data; }function ext_ent_handler($parser,$ent,$base,$sysID,$pubID) { echo "$ent<br />"; echo "$sysID<br />"; echo "$pubID<BR />"; }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)) ou morrer (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);?>