A função xml_set_unparsed_entity_decl_handler() especifica a função que é chamada quando o analisador encontra uma entidade não analisável no documento XML.
Se for bem-sucedido, a função retornará TRUE. Se falhar, retorna FALSE.
xml_set_unparsed_entity_decl_handler(analisador,manipulador)
parâmetro | descrever |
---|---|
analisador | Obrigatório. Especifica o analisador XML a ser usado. |
manipulador | Especifica a função a ser chamada quando o analisador encontra uma entidade que não pode ser analisada. |
A função especificada pelo parâmetro "handler" deve ter seis 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. |
base | Obrigatório. Especifica uma variável que contém a base para resolver o identificador do sistema da entidade (system_id). Atualmente este parâmetro geralmente é definido como NULL. |
ID_do_sistema | Obrigatório. Especifica uma variável que contém o identificador do sistema da entidade. |
id_público | Obrigatório. Especifica uma variável que contém o identificador público da entidade. |
notação | Obrigatório. Especifica uma variável que contém um símbolo que identifica o tipo de dados da entidade. |
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 unparsed_ent_handler($parser,$entname,$base,$sysID,$pubID,$notname) { print "$ entname<br />"; print "$sysID<br />"; print "$pubID<br />"; print "$notname<br />"; }xml_set_character_data_handler($parser,"char");xml_set_unparsed_entity_decl_handler($parser,"unparsed_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);?>