Jump to content
Fórum Script Brasil
  • 0

XML + DOM


Ted k'

Question

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>
        <preço>10.90</preço>
        <ano>1985</ano>
    </CD>
    <CD>
        <titulo>Hide your heart</titulo>
        <artista>Bonnie Tyler</artista>
        <outro01>UK</outro01>
        <empresa>CBS Records</empresa>
        <preço>9.90</preço>
        <ano>1988</ano>
    </CD>
    <CD>
        <titulo>Greatest Hits</titulo>
        <artista>Dolly Parton</artista>
        <outro01>USA</outro01>
        <empresa>RCA</empresa>
        <preço>9.90</preço>
        <ano>1982</ano>
    </CD>
    <CD>
        <titulo>Still got the blues</titulo>
        <artista>Gary Moore</artista>
        <outro01>UK</outro01>
        <empresa>Virgin records</empresa>
        <preço>10.20</preço>
        <ano>1990</ano>
    </CD>
    <CD>
        <titulo>Eros</titulo>
        <artista>Eros Ramazzotti</artista>
        <outro01>EU</outro01>
        <empresa>BMG</empresa>
        <preço>9.90</preço>
        <ano>1997</ano>
    </CD>

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

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

Link to comment
Share on other sites

0 answers to this question

Recommended Posts

There have been no answers to this question yet

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152k
    • Total Posts
      651.6k
×
×
  • Create New...