• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

merlin3000

Devolver XML de PHP para AJAX

4 mensagens neste tópico

Boas, não sabia muito bem se colocar isto na zona de PHP se aqui mas pareceu-me mais apropriado aqui.

Eu estou a fazer um pedido a um ficheiro php que me cria um ficheiro XML usando DOM (o script PHP imprime-me um ficheiro php direito). A minha pergunta é como é que posso devolver o XML do PHP para ser recebido direito no AJAX.

Neste momento o código que devolve o XML em PHP é:

echo $xml->saveXML();

e o código em AJAX onde o recebo é:

 var docxml = xmlHttpObj.responseXML;

O problema é que quando faço uma pesquisa por tags que sei que estão no XML a lista dessa tags tem sempre comprimento 0. Por isso ou não estou a devolver ou não estou a receber correctamente. Por exemplo:

var itemList = docxml.getElementsByTagName("item");

dá-me sempre 0;

O meu conhecimento nesta área ainda é limitado :-[ por isso a noobice é acentuada lol mas é que tenho andado a procura (tenho pelo menos umas 30 tabs sobre o tema por aqui) e por muitas soluções que veja isto não me está a funcionar.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Se o xml produzido pelo PHP for gravado num ficheiro e a chamada em AJAX for feita directamente ao ao XML e não ao PHP funciona direito por isso tem que ser qualquer coisa a ver com a forma de devolver o ficheiro em PHP.

Eu guardo o XML num ficheiro com o seguinte código:

$file = 'file.txt';
$fh = fopen($file, "w");
fwrite($fh, $xml->saveXML());
fclose($fh);

eu estou a devolver como disse a cima com o código:

echo $xml->saveXML();

será que não é possível devolver o XML directamente? Posso sempre guardá-lo num ficheiro e enviar uma string com o link para o mesmo para o AJAX, no artigo da Revista Programar que mandas-te é devovida uma string, pos isso pelo menso esse método deve funcionar :confused:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Bem já vi o que era, faltava-me

header('Content-Type: text/xml');

no ficheiro PHP.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora