Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

ScornInPC

Javascript + XML

Recommended Posts

Oi gente, meu primeiro post. Tava procurando um forum bom sobre programação web e me parece que este aqui me agradou bastante. Bom, vamos la: To com um projeto pra fazer pra um tio meu, mas o mão de vaca naum quer pegar um servidor pago com suporte a PHP e tal, entaum pensei no seguinte, fazer um XML com a descrição e camilho de cada foto. Ja tenho tudo na cabeça, mas to tentando explicar e naum consigo. Ai vai a pergunta, se tenho um XML +/- assim: <album> <foto descricao="Primeira foto" caminho="01.jpg"></foto> <foto descricao="Segunda foto" caminho="02.jpg"></foto> <foto descricao="Terceira foto" caminho="03.jpg"></foto> </album>como com javascript eu manipular algo assim???

Compartilhar este post


Link para o post
Compartilhar em outros sites

é, o trabalho naum vale tudo isso. Digo, é um negocio muito simples pra fazer com algo tão complicadotem como fazer isso com arquivo txt mesmo? por exemplo, colocar as fotos separadas por ; e tal, tem como ler um txt com Js?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, é fácil sim...Em uma (1) hora voce termina de estudar tudo. Tudo mesmo.Maaass, já que não quer...Tem outra forma mais difícil.Voce deverá ler qualquer arquivo no mesmo domínio que sua página e tratar o resultado usando funções de String, como substring, substr, split, etc.Mas eu acho que é mais fácil e seguro voce usar funções de tratamento DOM.

Compartilhar este post


Link para o post
Compartilhar em outros sites

micox, beleza parece ser dificil, mas ja que você ta dizendo vo procurar documentação Br pra ficar mais facil,. por enquanto ja fiz o script, olha como ficou, ficou show, gostei pra caramba, só que to usando array.

 

<HTML>	<head>		<title>			Album de Fotos com JavaScript		</title>		<script>			var dir = "./fotos/";			var atual = 0;			var total = 8;			var quant = 4;			var fotos = new Array();			fotos[0] = "001.jpg";			fotos[1] = "002.jpg";			fotos[2] = "003.jpg";			fotos[3] = "004.jpg";			fotos[4] = "005.jpg";			fotos[5] = "006.jpg";			fotos[6] = "007.jpg";			fotos[7] = "008.jpg";							function TrocaMenu(Tipo)			{				if (Tipo == 0)				{					if (atual > 0)					{						atual = atual - 1;					}				}				else if (Tipo == 1)				{					if (atual < (total - quant))					{						atual = atual + 1;					}				}				var Area = document.getElementById("menu");				Area.innerHTML = "Carregando";								aux = "";								document.getElementById("menuAnt").innerHTML = ""				if (atual > 0)				{					document.getElementById("menuAnt").innerHTML = "<span onClick=\"TrocaMenu(0);\">Anterior</span>";				}				for(i=1; i<=quant; i++)				{					aux = aux + "<img src=\"" + dir + fotos[i + atual - 1] + "\" border=\"0\" widht=\"70\" height=\"70\" onClick=\"TrocaFoto(" +  (i + atual - 1) + ");\">";				}								document.getElementById("menuPro").innerHTML = "";				if (atual < (total - quant))				{					document.getElementById("menuPro").innerHTML = "<span onClick=\"TrocaMenu(1);\">Proximo</span>";				}				Area.innerHTML = aux;			}							function TrocaFoto(idFoto)			{				var Area = document.getElementById('principal');				Area.innerHTML = "Carregando";									xmlhttp.open("GET", dir + fotos[idFoto],true);				xmlhttp.onreadystatechange=function() 							{								if (xmlhttp.readyState==4)								{									var Aux = "<img src=\"" + dir + fotos[idFoto] + "\" border=\"0\" widht=\"200\" height=\"200\">";									Area.innerHTML = Aux;								}							}				xmlhttp.send(null)			}							//AJAX			try			{				xmlhttp = new XMLHttpRequest();			}			catch(ee)			{				try				{					xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");				}				catch(e)				{					try					{						xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");					}					catch(E)					{						xmlhttp = false;					}				}			}		</script>	</head>	<body onLoad="TrocaFoto(0); TrocaMenu(0);">		<center>			<table border="0" width="100%">				<tr>					<td width="20%"> </td>					<td align="center" valign="center" id="principal"></td>					<td width="20%"> </td>				</tr>				<tr>					<td width="20%" id="menuAnt"> </td>					<td align="center" valign="center" id="menu"></td>					<td width="20%" id="menuPro"> </td>				</tr>			</table>		</center>	</body></html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bão rapá. Voce saca do negócio.Implementa este aí temporariamente, mas saiba que ficará mais organizado quando voce fizer lendo de um arquivo XML externo.Estuda a documentação do mozilla que eu falei que ela tem em portugues também.

Compartilhar este post


Link para o post
Compartilhar em outros sites

edição: esqueci de uma coisa, como criar o objeto no firefox? naum achei nada relacionado.

 

ai, juntando um pouquinho aqui outro ali, consegui fazer isso ó

 

<script language="javascript"> function ResXML(file) {   var xmlDoc = new ActiveXObject("Msxml2.DOMDocument.3.0");   var objNodeList;   xmlDoc.async = false;   xmlDoc.load("teste.xml");   if (xmlDoc.parseError.errorCode != 0)   {	  var myErr = xmlDoc.parseError;	  alert(myErr.reason);   }   else   {	  objNodeList = xmlDoc.getElementsByTagName("foto");	  for (var i=0; i<objNodeList.length; i++)	  {		 alert(objNodeList.item(i).getAttribute('caminho'));		 alert(objNodeList.item(i).getAttribute('descricao'));	  }   }}  </script>

meu xml fico assim ó

<?xml version="1.0"?><album>   <foto caminho="001.jpg" descricao="Foto numero um"></foto>   <foto caminho="002.jpg" descricao="Foto numero dois"></foto></album>

haha cabreiro, vo colocar isso no album agora, e dar uma arrumado no layout dele e posto aqui =)

 

por enquando valeu micox

Compartilhar este post


Link para o post
Compartilhar em outros sites

Firefox tente:

 

Loader = new XMLHttpRequest()Loader.open("GET", url_do_xml ,false)Loader.send(null)xmlDoc = Loader.responseXML

Compartilhar este post


Link para o post
Compartilhar em outros sites

Micox, bom dia! Não entendi esse código abaixo do w3School.Se eu tenho um xml já pronto e o chamo através do responseXML do AJAX, qual a necessidade de chamar através desse objeto XMLDOM ou document.implementation. Só para esclarecer esses objetos não são para criar um XML do zero. Se eu chamar um XML prontinho via AJAX qual a necessidade deles?Vicente Domingos<html><head><script type="text/javascript">var xmlDoc;function loadXML(){//load xml file// code for IEif (window.ActiveXObject){ xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); xmlDoc.async=false; xmlDoc.load("note.xml"); getmessage();}// code for Mozilla, Firefox, Opera, etc.else if (document.implementation && document.implementation.createDocument){ xmlDoc=document.implementation.createDocument("","",null); xmlDoc.load("note.xml"); xmlDoc.onload=getmessage;}else{ alert('Your browser cannot handle this script');}}function getmessage(){document.getElementById("to").innerHTML=xmlDoc.getElementsByTagName("to")[0].childNodes[0].nodeValue;document.getElementById("from").innerHTML=xmlDoc.getElementsByTagName("from")[0].childNodes[0].nodeValue;document.getElementById("message").innerHTML=xmlDoc.getElementsByTagName("body")[0].childNodes[0].nodeValue;}</script></head><body onload="loadXML()"><h1>W3Schools Internal Note</h1><p><b>To:</b> <span id="to"></span><br /><b>From:</b> <span id="from"></span><br /><b>Message:</b> <span id="message"></span></p></body></html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Só para esclarecer esses objetos não são para criar um XML do zero. Se eu chamar um XML prontinho via AJAX qual a necessidade deles?

Eu não sei com certeza não, mas acho que é porque o responseXML não costuma funcionar bem em todos os navegadores.Um artigo muito bom sobre o responseXML é o do nghorta: http://www.nghorta.com/2006/09/06/experime...de-responsexml/

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.