Leitura de XML com JavaScript

4 respostas
J

Galera seguinte se alguem puder dar uma força ai…
To querendo ler um XML com JavaScript, mais este arquivo não esta no mesmo servidor da minha aplicação.
Usando o seguinte codigo eu consigo ler ele localmente.

function loadXML(url){ if(window.XMLHttpRequest){ var xml = new XMLHttpRequest(); Loader.open("GET", url ,false); xml.send(); return xml.responseXML; }else if(window.ActiveXObject){ var xml = new ActiveXObject("Microsoft.XMLDOM"); xml.async = false; xml.load(url); return xml; } }

A pergunta é alguem saberia me dizer uma forma de ler este mesmo arquivo em um servidor externo?

4 Respostas

E

creio que com ajax não vá conseguir, por medidas de segurança os browsers costumam bloquear ajax para outro servidor.

Você não pode intermediar com a sua aplicação, ela busca o xml no outro servidor e traz para o seu, e no cliente só consulta o seu?

E

Ah, já ía esquecendo, acho que com ActionScript vc consegue no cliente, ou com um applet, mas não gosto de applets.

J

Pode sim de qualquer forma eu vou ter que ler esse arquivo.
Eu fiz o seguinte agora to pegando o arquivo pela URL e salvando ele no meu servidor e faço a leitura dele no me servidor.

URL url = new URL("http://servidor.com.br/arquivo.xml");
		
		InputStream stream = url.openStream();
		InputStreamReader reader = new InputStreamReader(stream);
		BufferedReader bufferedReader = new BufferedReader(reader);
		
		File file = new File("/home/linux/rss.xml");
		file.createNewFile();
		FileOutputStream outputStream = new FileOutputStream(file);
		
		String linha = "";
		while(linha != null){
			linha = bufferedReader.readLine();
			outputStream.write(linha.getBytes());
		}
		
		stream.close(); reader.close(); bufferedReader.close(); outputStream.close();

So que eu to tento problema com o CharSet… ta aparecendo aqueles caracteres estranhos ao invés de acentos.
Alguém sabe me dizer como resolver isto.

E

Usa o outro construtor do seu InputStreamReader:

InputStream stream = url.openStream();  
InputStreamReader reader = new InputStreamReader(stream, "ISO-8859-1");  
BufferedReader bufferedReader = new BufferedReader(reader);
Criado 17 de agosto de 2011
Ultima resposta 17 de ago. de 2011
Respostas 4
Participantes 2