Aplikacje XML
- Poprzednia strona Baza danych AJAX
- Następna strona Przykład AJAX
Ten rozdział pokazuje demonstrację aplikacji HTML używającej XML, HTTP, DOM oraz JavaScript.
używanego dokumentu XML
W tym rozdziale użyjemy dokumentu XML o nazwie "music_list.xml" XML plik.
Wyświetlanie danych XML w tabeli HTML
Przykład przechodzenia przez każdy element <TRACK> i wyświetlania wartości elementów <ARTIST> i <TITLE> w tabeli HTML:
Przykład
<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", "lista_muzyki.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 = tabela; } </script> </body> </html>
Dla więcej informacji na temat użycia JavaScript i XML DOM, odwiedź Podstawy DOM.
Wyświetlanie pierwszej piosenki w elemencie div HTML
W tym przykładzie używamy funkcji, aby wyświetlić pierwszą piosenkę w elemencie HTML o id="displayMUSIC":
Przykład
wyświetlMUZYKĘ(0); function wyświetlMUZYKĘ(i) { var xmlhttp = new XMLHttpRequest(); xmlhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { mojaFunkcja(this, i); } }; xmlhttp.open("GET", "lista_muzyki.xml", true); xmlhttp.send(); } function mojaFunkcja(xml, i) { var xmlDoc = xml.responseXML; x = xmlDoc.getElementsByTagName("Ścieżka"); document.getElementById("pokażMUZYKĘ").innerHTML = "<ul>" + "<li>Utwór: " + x[i].getElementsByTagName("Tytuł")[0].childNodes[0].nodeValue + "</li>" + "<li>Artysta: " + x[i].getElementsByTagName("ARTIST")[0].childNodes[0].nodeValue + "</li>" + "<li>Album: " + x[i].getElementsByTagName("ALBUM")[0].childNodes[0].nodeValue + "</li>" + "<li>Kraj: " + x[i].getElementsByTagName("COUNTRY")[0].childNodes[0].nodeValue + "</li>" + "<li>Firma: " + x[i].getElementsByTagName("COMPANY")[0].childNodes[0].nodeValue + "</li>" + "<li>Rok: " + x[i].getElementsByTagName("YEAR")[0].childNodes[0].nodeValue + "</li>" + "</ul>"; }
Nawigacja między utworami
Aby nawigować między utworami w przykładzie powyżej, dodaj funkcje next() i previous():
Przykład
function następny() { // Wyświetl następny utwór, chyba że jest to ostatni utwór if (i < x.length-1) { i++; wyświetlMUZYKĘ(i); } } function poprzedni() { // Wyświetl poprzedni utwór, chyba że jest to pierwszy utwór if (i > 0) { i--; wyświetlMUZYKĘ(i); } }
Wyświetlanie informacji o albumie po kliknięciu na utwór
Ostatni przykład pokazuje, jak wyświetlić informacje o albumie po kliknięciu na utwór:
Przykład
function wyświetlMUZYKĘ(i) { document.getElementById("pokażMUZYKĘ").innerHTML = "<ul>" + "<li>Utwór: " + x[i].getElementsByTagName("Tytuł")[0].childNodes[0].nodeValue + "</li>" + "<li>Artysta: " + x[i].getElementsByTagName("ARTIST")[0].childNodes[0].nodeValue + "</li>" + "<li>Album: " + x[i].getElementsByTagName("ALBUM")[0].childNodes[0].nodeValue + "</li>" + "<li>Kraj: " + x[i].getElementsByTagName("COUNTRY")[0].childNodes[0].nodeValue + "</li>" + "<li>Firma: " + x[i].getElementsByTagName("COMPANY")[0].childNodes[0].nodeValue + "</li>" + "<li>Rok: " + x[i].getElementsByTagName("YEAR")[0].childNodes[0].nodeValue + "</li>" + "</ul>"; }
- Poprzednia strona Baza danych AJAX
- Następna strona Przykład AJAX