tamandua-rj Postado Abril 7, 2009 Denunciar Share Postado Abril 7, 2009 Bom diaO programa abaixo faz o parse dos dados XML e dá um echo de cada dado encontrado ente tags.Mas um problema ocorre com palavras acentuadas, neste exemplo a palavra é Distribuído.Acontece que a rotina passada para o xml_set_character_data_handler (FuncDados) deveria ser executada apenas uma vez para este dado.Mas na verdade a rotina está sendo executada duas vezes, como se o caracter "í" fosse um fim de tag.Isso não ocorre no PHP 4 mas sim no PHP 5.0.2 em diante. Pesquisei bastante e não encontrei uma resposta.Se alguém tiver uma ideia ou solução para o problema.....Grande abraço<?//FUNÇÃO DA TAG INICIAL DO ARQUIVO XMLfunction FuncInicial($parser, $elemento) {}//FECHA FUNCTION FUNCINICIAL//FUNÇÃO PARA EXIBIR OS DADOS DO DOCUMENTO XMLfunction FuncDados($parser, $dados) {echo $dados . "<br>";}//FECHA FUNCTION FUNCINICIAL//FUNÇÃO DA TAG INICIAL DO DOCUEMENTO XMLfunction FuncFinal($parser, $elemento) {}//FECHA FUNCTION FUNCFINAL$parser = xml_parser_create("ISO-8859-1"); // cria parser XMLxml_set_character_data_handler($parser, "FuncDados");xml_set_element_handler($parser, "FuncInicial", "FuncFinal");$dados = "<?xml version='1.0' encoding='ISO-8859-1' ?><dado>Distribuído</dado>";xml_parse($parser, $dados);xml_parser_free($parser); // libera a memória utilizada pelo parser?> Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
tamandua-rj
Bom dia
O programa abaixo faz o parse dos dados XML e dá um echo de cada dado encontrado ente tags.
Mas um problema ocorre com palavras acentuadas, neste exemplo a palavra é Distribuído.
Acontece que a rotina passada para o xml_set_character_data_handler (FuncDados) deveria ser executada apenas uma vez para este dado.
Mas na verdade a rotina está sendo executada duas vezes, como se o caracter "í" fosse um fim de tag.
Isso não ocorre no PHP 4 mas sim no PHP 5.0.2 em diante. Pesquisei bastante e não encontrei uma resposta.
Se alguém tiver uma ideia ou solução para o problema.....
Grande abraço
<?
//FUNÇÃO DA TAG INICIAL DO ARQUIVO XML
function FuncInicial($parser, $elemento) {
}//FECHA FUNCTION FUNCINICIAL
//FUNÇÃO PARA EXIBIR OS DADOS DO DOCUMENTO XML
function FuncDados($parser, $dados) {
echo $dados . "<br>";
}//FECHA FUNCTION FUNCINICIAL
//FUNÇÃO DA TAG INICIAL DO DOCUEMENTO XML
function FuncFinal($parser, $elemento) {
}//FECHA FUNCTION FUNCFINAL
$parser = xml_parser_create("ISO-8859-1"); // cria parser XML
xml_set_character_data_handler($parser, "FuncDados");
xml_set_element_handler($parser, "FuncInicial", "FuncFinal");
$dados = "<?xml version='1.0' encoding='ISO-8859-1' ?><dado>Distribuído</dado>";
xml_parse($parser, $dados);
xml_parser_free($parser); // libera a memória utilizada pelo parser
?>
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.