Применение XML
- Предыдущая страница База данных AJAX
- Следующая страница Пример AJAX
В этой главе мы демонстрируем использование HTML приложений с XML, HTTP, DOM и JavaScript.
используемый XML документ
В этой главе мы будем использовать документ с именем "music_list.xml" XML файла.
Отображение данных XML в таблице HTML
В этом примере遍历每个 <TRACK> элемент, а затем показывает значения элементов <ARTIST> и <TITLE> в таблице HTML:
Пример
<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>
Для получения дополнительной информации о использовании JavaScript и XML DOM посетите Введение в DOM.
Отображение первой песни в HTML div элементе
Этот пример использует функцию для отображения первой песни в HTML элементе с id="displayMUSIC":
Пример
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>Трек: " + x[i].getElementsByTagName("TITLE")[0].childNodes[0].nodeValue + "</li>" + "<li>Искусник: " + x[i].getElementsByTagName("ARTIST")[0].childNodes[0].nodeValue + "</li>" + "<li>Альбом: " + x[i].getElementsByTagName("ALBUM")[0].childNodes[0].nodeValue + "</li>" + "<li>Страна: " + x[i].getElementsByTagName("COUNTRY")[0].childNodes[0].nodeValue + "</li>" + "<li>Компания: " + x[i].getElementsByTagName("COMPANY")[0].childNodes[0].nodeValue + "</li>" + "<li>Год: " + x[i].getElementsByTagName("YEAR")[0].childNodes[0].nodeValue + "</li>" + "</ul>"; }
Навигация между треками
Чтобы навигировать между треками в примере выше, добавьте функции next() и previous():
Пример
function next() { // Показ следующей песни, если не достигнута последняя if (i < x.length-1) { i++; displayMUSIC(i); } } function previous() { // Показ предшествующей песни, если не достигнута первая if (i > 0) { i--; displayMUSIC(i); } }
Показ информации об альбоме при нажатии на песню
Этот пример демонстрирует, как показывать информацию об альбоме при нажатии на определенную песню:
Пример
function displayMUSIC(i) { document.getElementById("showMUSIC").innerHTML = "<ul>" + "<li>Трек: " + x[i].getElementsByTagName("TITLE")[0].childNodes[0].nodeValue + "</li>" + "<li>Искусник: " + x[i].getElementsByTagName("ARTIST")[0].childNodes[0].nodeValue + "</li>" + "<li>Альбом: " + x[i].getElementsByTagName("ALBUM")[0].childNodes[0].nodeValue + "</li>" + "<li>Страна: " + x[i].getElementsByTagName("COUNTRY")[0].childNodes[0].nodeValue + "</li>" + "<li>Компания: " + x[i].getElementsByTagName("COMPANY")[0].childNodes[0].nodeValue + "</li>" + "<li>Год: " + x[i].getElementsByTagName("YEAR")[0].childNodes[0].nodeValue + "</li>" + "</ul>"; }
- Предыдущая страница База данных AJAX
- Следующая страница Пример AJAX