Ir para conteúdo

Arquivado

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

Ted k'

xml dom

Recommended Posts

Segue o código todo comentado para facilitar o entendimento da galera!!

 

BANCO.XML

<?xml version="1.0" encoding="ISO-8859-1"?>
<CATALOG>
	<CD>
		<titulo>Empire Burlesque</titulo>
		<artista>Bob Dylan</artista>
		<outro01>USA</outro01>
		<empresa>Columbia</empresa>
		<preco>10.90</preco>
		<ano>1985</ano>
	</CD>
	<CD>
		<titulo>Hide your heart</titulo>
		<artista>Bonnie Tyler</artista>
		<outro01>UK</outro01>
		<empresa>CBS Records</empresa>
		<preco>9.90</preco>
		<ano>1988</ano>
	</CD>
	<CD>
		<titulo>Greatest Hits</titulo>
		<artista>Dolly Parton</artista>
		<outro01>USA</outro01>
		<empresa>RCA</empresa>
		<preco>9.90</preco>
		<ano>1982</ano>
	</CD>
	<CD>
		<titulo>Still got the blues</titulo>
		<artista>Gary Moore</artista>
		<outro01>UK</outro01>
		<empresa>Virgin records</empresa>
		<preco>10.20</preco>
		<ano>1990</ano>
	</CD>
	<CD>
		<titulo>Eros</titulo>
		<artista>Eros Ramazzotti</artista>
		<outro01>EU</outro01>
		<empresa>BMG</empresa>
		<preco>9.90</preco>
		<ano>1997</ano>
	</CD>

	<CD>
		<titulo>One night only</titulo>
		<artista>Bee Gees</artista>
		<outro01>UK</outro01>
		<empresa>Polydor</empresa>
		<preco>10.90</preco>
		<ano>1998</ano>
	</CD>
	<CD>
		<titulo>Sylvias Mother</titulo>
		<artista>Dr.Hook</artista>
		<outro01>UK</outro01>
		<empresa>CBS</empresa>
		<preco>8.10</preco>
		<ano>1973</ano>
	</CD>
	<CD>
		<titulo>Maggie May</titulo>
		<artista>Rod Stewart</artista>
		<outro01>UK</outro01>
		<empresa>Pickwick</empresa>
		<preco>8.50</preco>
		<ano>1990</ano>
	</CD>
	<CD>
		<titulo>Romanza</titulo>
		<artista>Andrea Bocelli</artista>
		<outro01>EU</outro01>
		<empresa>Polydor</empresa>
		<preco>10.80</preco>
		<ano>1996</ano>
	</CD>
	<CD>
		<titulo>When a man loves a woman</titulo>
		<artista>Percy Sledge</artista>
		<outro01>USA</outro01>
		<empresa>Atlantic</empresa>
		<preco>8.70</preco>
		<ano>1987</ano>
	</CD>
	<CD>
		<titulo>Black angel</titulo>
		<artista>Savage Rose</artista>
		<outro01>EU</outro01>
		<empresa>Mega</empresa>
		<preco>10.90</preco>
		<ano>1995</ano>
	</CD>
	<CD>
		<titulo>1999 Grammy Nominees</titulo>
		<artista>Many</artista>
		<outro01>USA</outro01>
		<empresa>Grammy</empresa>
		<preco>10.20</preco>
		<ano>1999</ano>
	</CD>
	<CD>
		<titulo>For the good times</titulo>
		<artista>Kenny Rogers</artista>
		<outro01>UK</outro01>
		<empresa>Mucik Master</empresa>
		<preco>8.70</preco>
		<ano>1995</ano>
	</CD>
	<CD>
		<titulo>Big Willie style</titulo>
		<artista>Will Smith</artista>
		<outro01>USA</outro01>
		<empresa>Columbia</empresa>
		<preco>9.90</preco>
		<ano>1997</ano>
	</CD>
	<CD>
		<titulo>Tupelo Honey</titulo>
		<artista>Van Morrison</artista>
		<outro01>UK</outro01>
		<empresa>Polydor</empresa>
		<preco>8.20</preco>
		<ano>1971</ano>
	</CD>

	<CD>
		<titulo>Soulsville</titulo>
		<artista>Jorn Hoel</artista>
		<outro01>Norway</outro01>
		<empresa>WEA</empresa>
		<preco>7.90</preco>
		<ano>1996</ano>
	</CD>
	<CD>
		<titulo>The very best of</titulo>
		<artista>Cat Stevens</artista>
		<outro01>UK</outro01>
		<empresa>Island</empresa>
		<preco>8.90</preco>
		<ano>1990</ano>
	</CD>
	<CD>
		<titulo>Stop</titulo>
		<artista>Sam Brown</artista>
		<outro01>UK</outro01>
		<empresa>A and M</empresa>
		<preco>8.90</preco>
		<ano>1988</ano>
	</CD>
	<CD>
		<titulo>Bridge of Spies</titulo>
		<artista>T'Pau</artista>
		<outro01>UK</outro01>
		<empresa>Siren</empresa>
		<preco>7.90</preco>
		<ano>1987</ano>
	</CD>
	<CD>
		<titulo>Private Dancer</titulo>
		<artista>Tina Turner</artista>
		<outro01>UK</outro01>
		<empresa>Capitol</empresa>
		<preco>8.90</preco>
		<ano>1983</ano>
	</CD>
	<CD>
		<titulo>The dock of the bay</titulo>
		<artista>Otis Redding</artista>
		<outro01>USA</outro01>
		<empresa>Atlantic</empresa>
		<preco>7.90</preco>
		<ano>1987</ano>
	</CD>
	<CD>
		<titulo>Picture book</titulo>
		<artista>Simply Red</artista>
		<outro01>EU</outro01>
		<empresa>Elektra</empresa>
		<preco>7.20</preco>
		<ano>1985</ano>
	</CD>
	<CD>
		<titulo>Red</titulo>
		<artista>The Communards</artista>
		<outro01>UK</outro01>
		<empresa>London</empresa>
		<preco>7.80</preco>
		<ano>1987</ano>
	</CD>
	<CD>
		<titulo>Unchain my heart</titulo>
		<artista>Joe Cocker</artista>
		<outro01>USA</outro01>
		<empresa>EMI</empresa>
		<preco>8.20</preco>
		<ano>1987</ano>
	</CD>
</CATALOG>

Agora a mágica do DOM

 

 

TESTE.HTML

<html>
<head>

<script type="text/javascript">
	var xmlDoc;
	
		// Verificando o IE
		if (window.ActiveXObject) {
			xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
		}
		// Verificando o Mozilla, Firefox, Opera, etc.
			else if (document.implementation.createDocument) {
			xmlDoc=document.implementation.createDocument("","",null);
		}
			else {
			alert('Seu site não suporta essa plataforma'); // Caso não tenha suporte a plataforma
		}

		xmlDoc.async = false;
		xmlDoc.load("Banco.xml"); // Carrega o arquivo XML
	
	var x = xmlDoc.getElementsByTagName("CD"); // Carregando a pag principal
		i = 0;
		
		// Função para avançar os valores
		function avancar() {
			if (i < x.length) {
				i++;
				display();
			}
		}
		
		// Função para voltar os valores
		function voltar() {
			if (i>0) {
				i--;
				display();
			}
		}
	
	// Função que carrega quando o site é exibido
	function display() {
		var artista, titulo, ano;
		// Dando valor para as variáveis
		artista = (x[i].getElementsByTagName("artista")[0].childNodes[0].nodeValue);
		titulo = (x[i].getElementsByTagName("titulo")[0].childNodes[0].nodeValue);
		ano = (x[i].getElementsByTagName("ano")[0].childNodes[0].nodeValue);
		
		// Caregando o HTML dentro da div Show
		document.getElementById("show").innerHTML="<strong>Artista:</strong> "+artista+"<br> <strong>Título:</strong> "+titulo+"<br> <strong>Ano:</strong> "+ano;
	}
</script>
</head>

<body onload="display()">
<div id="show" style="font-family:verdana; font-size:12px;">
</div>
<br>
<input type="button" onclick="voltar()" value="<< Voltar">
<input type="button" onclick="avancar()" value="Avançar >>">

</body>
</html>

E não tem nem mais....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Prezado :

 

 

Seria legal acrescer, na função AVANCAR(), a crítica antes da função DISPLAY():

 

 

.

.

.

if (i<x.length) // só exibe objeto entre i=0 e i<=total de registros/itens ( 0<=i<=total de registro )

{

display();

}

else // senão, exibe mensasagem e corrige o valor pra denro do intervalo possível de visualizar

{

alert('Fim de Registro!');

i--;

}

.

.

.

 

A mesma coisa deve ser feita para quando houver tentativa de usar a opção <voltar>.

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.