Aplicações XML
- Página Anterior Banco de Dados AJAX
- Próxima Página Exemplo de AJAX
Este capítulo demonstra o uso de XML, HTTP, DOM e JavaScript em aplicações HTML.
documento XML usado
Neste capítulo, usaremos o nome "music_list.xml" do arquivo XML.
Exibir dados XML em uma tabela HTML
Este exemplo percorre cada elemento <TRACK> e, em seguida, exibe os valores dos elementos <ARTIST> e <TITLE> em uma tabela HTML:
Exemplo
<html> <body> <table id="demo"></table> <script> function loadXMLDoc() { var xmlhttp = new XMLHttpRequest(); xmlhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { myFunction(this); } }; xmlhttp.open("GET", "music_list.xml", true); xmlhttp.send(); } function myFunction(xml) { var i; var xmlDoc = xml.responseXML; var table="<tr><th>艺术家</th><th>曲目</th></tr>"; var x = xmlDoc.getElementsByTagName("TRACK"); for (i = 0; i <x.length; i++) { table += "<tr><td>" + x[i].getElementsByTagName("ARTIST")[0].childNodes[0].nodeValue + "</td><td>" + x[i].getElementsByTagName("TITLE")[0].childNodes[0].nodeValue + "</td></tr>"; } document.getElementById("demo").innerHTML = table; } </script> </body> </html>
Para mais informações sobre o uso de JavaScript e XML DOM, visite Introdução ao DOM.
Exibir a primeira música em um elemento HTML div
Este exemplo usa uma função para exibir a primeira música em um elemento HTML com id="displayMUSIC":
Exemplo
displayMUSIC(0); function displayMUSIC(i) { var xmlhttp = new XMLHttpRequest(); xmlhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { myFunction(this, i); } }; xmlhttp.open("GET", "music_list.xml", true); xmlhttp.send(); } function myFunction(xml, i) { var xmlDoc = xml.responseXML; x = xmlDoc.getElementsByTagName("TRACK"); document.getElementById("showMUSIC").innerHTML = "<ul>" + "<li>Álbum: " + x[i].getElementsByTagName("TITLE")[0].childNodes[0].nodeValue + "</li>" + "<li>Artista: " + x[i].getElementsByTagName("ARTIST")[0].childNodes[0].nodeValue + "</li>" + "<li>Álbum: " + x[i].getElementsByTagName("ALBUM")[0].childNodes[0].nodeValue + "</li>" + "<li>País: " + x[i].getElementsByTagName("COUNTRY")[0].childNodes[0].nodeValue + "</li>" + "<li>Empresa: " + x[i].getElementsByTagName("COMPANY")[0].childNodes[0].nodeValue + "</li>" + "<li>Ano: " + x[i].getElementsByTagName("YEAR")[0].childNodes[0].nodeValue + "</li>" + "</ul>"; }
Navegação entre músicas
Para navegar entre as músicas no exemplo anterior, adicione as funções next() e previous():
Exemplo
function next() { // Exibir a música seguinte, a menos que seja a última if (i < x.length-1) { i++; displayMUSIC(i); } } function previous() { // Exibir a música anterior, a menos que seja a primeira if (i > 0) { i--; displayMUSIC(i); } }
Exibir informações de álbum ao clicar em uma música
Este último exemplo demonstra como exibir informações de álbum ao clicar em uma música específica:
Exemplo
function displayMUSIC(i) { document.getElementById("showMUSIC").innerHTML = "<ul>" + "<li>Álbum: " + x[i].getElementsByTagName("TITLE")[0].childNodes[0].nodeValue + "</li>" + "<li>Artista: " + x[i].getElementsByTagName("ARTIST")[0].childNodes[0].nodeValue + "</li>" + "<li>Álbum: " + x[i].getElementsByTagName("ALBUM")[0].childNodes[0].nodeValue + "</li>" + "<li>País: " + x[i].getElementsByTagName("COUNTRY")[0].childNodes[0].nodeValue + "</li>" + "<li>Empresa: " + x[i].getElementsByTagName("COMPANY")[0].childNodes[0].nodeValue + "</li>" + "<li>Ano: " + x[i].getElementsByTagName("YEAR")[0].childNodes[0].nodeValue + "</li>" + "</ul>"; }
- Página Anterior Banco de Dados AJAX
- Próxima Página Exemplo de AJAX