Dúvida com javascript

4 respostas
diegobrandao

Olá a todos,

Tenho o seguinte trecho em javascript…

dtmlXMLLoaderObject.prototype.loadXML = function(filePath) {
	try {
		this.xmlDoc = new XMLHttpRequest();
		this.xmlDoc.open("GET", filePath, true);
		this.xmlDoc.onreadystatechange = new this.waitLoadFunction(this);
		this.xmlDoc.send(null);
	} catch(e) {
		if (document.implementation && document.implementation.createDocument) {
			this.xmlDoc = document.implementation.createDocument("", "", null);
			this.xmlDoc.onload = new this.waitLoadFunction(this);
		} else {
			this.xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
			this.xmlDoc.async = "true";
			this.xmlDoc.onreadystatechange = new this.waitLoadFunction(this);
		}
		this.xmlDoc.load(filePath);
	}
};

O código está funcionando perfeitamente para ler dados de um arquivo XML em disco.
O que eu preciso fazer é ler o xml a partir da memória.
Estava pensando em passar todo o XML ao invés do filePath do arquivo.
Alguém tem alguma idéia??

Desde já agradeço…

4 Respostas

marcelo_mococa

Creio que não é possível acessar o sistema de arquivos utilizando javascript.

Se precisar de algo do tipo, tente um applet assinado.

diegobrandao

Então…
Dessa forma está funcionando só que eu preciso ter o xml em disco…
E ele é acessado via javascript.

<script>
			
			tree2=new dhtmlXTreeObject("treeboxbox_tree2","100%","100%",0);
			tree2.setImagePath("treeImgs/");
			tree2.enableCheckBoxes(1);
			tree2.enableThreeStateCheckboxes(true);
			tree2.loadXML("treeImgs/teste_1234.xml");
						
	</script>

O que eu quero fazer é passar o xml que está na memória. Pegar a String e passar…
Algo do tipo:

tree2.loadXML("<?xml version="1.0" encoding="UTF-8"?> ............resto do xml...");
marcelo_mococa

Entao…

Por questões de segurança, o javascript não pode acessar o sistema de arquivos do usuário.

A solução continua sendo o applet assinado.

diegobrandao

Bom dia…

Seguinte…
Consegui resolver passando o xml via String.

<script>            
        tree = new dhtmlXTreeObject("treeboxbox_tree", "100%", "100%", 0);
        tree.setImagePath("../tools/treeImgs/");
        tree.enableCheckBoxes(1);
        tree.enableThreeStateCheckboxes(true);
        tree.loadXMLString("<%= xml %>");
</script>

Obrigado pela ajuda…

Criado 27 de janeiro de 2009
Ultima resposta 28 de jan. de 2009
Respostas 4
Participantes 2