XML-program
- Föregående sida AJAX-databas
- Nästa sida AJAX-exempel
Detta kapitel visar hur man använder HTML-program med XML, HTTP, DOM och JavaScript.
använda XML-dokumentet
I detta kapitel kommer vi att använda dokumentetmusic_list.xml"s XML-fil.
Visa XML-data i en HTML-tabell
Detta exempel genomgår varje <TRACK>-element och visar sedan värdena för <ARTIST> och <TITLE>-element i en HTML-tabell:
Exempel
<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>
För mer information om att använda JavaScript och XML DOM, besök DOM Introduktion.
Visa första spåret i HTML div-elementet
Detta exempel använder en funktion för att visa det första spåret i HTML-elementet med id="displayMUSIC":
Exempel
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>Spår: " + x[i].getElementsByTagName("TITLE")[0].childNodes[0].nodeValue + "</li>" + "<li>Artister: " + x[i].getElementsByTagName("ARTIST")[0].childNodes[0].nodeValue + "</li>" + "<li>Album: " + x[i].getElementsByTagName("ALBUM")[0].childNodes[0].nodeValue + "</li>" + "<li>Land: " + x[i].getElementsByTagName("COUNTRY")[0].childNodes[0].nodeValue + "</li>" + "<li>Företag: " + x[i].getElementsByTagName("COMPANY")[0].childNodes[0].nodeValue + "</li>" + "<li>År: " + x[i].getElementsByTagName("YEAR")[0].childNodes[0].nodeValue + "</li>" + "</ul>"; }
Navigera mellan spår
För att navigera mellan spår i föregående exempel, lägg till next() och previous() funktioner:
Exempel
function next() { // Visa nästa låt, om inte den sista redan är vald if (i < x.length-1) { i++; displayMUSIC(i); } } function previous() { // Visa föregående låt, om inte den första redan är vald if (i > 0) { i--; displayMUSIC(i); } }
Visa albuminformation vid klick på låt
Den sista exempelvis visar hur man visar albuminformation när användaren klickar på en låt:
Exempel
function displayMUSIC(i) { document.getElementById("showMUSIC").innerHTML = "<ul>" + "<li>Spår: " + x[i].getElementsByTagName("TITLE")[0].childNodes[0].nodeValue + "</li>" + "<li>Artister: " + x[i].getElementsByTagName("ARTIST")[0].childNodes[0].nodeValue + "</li>" + "<li>Album: " + x[i].getElementsByTagName("ALBUM")[0].childNodes[0].nodeValue + "</li>" + "<li>Land: " + x[i].getElementsByTagName("COUNTRY")[0].childNodes[0].nodeValue + "</li>" + "<li>Företag: " + x[i].getElementsByTagName("COMPANY")[0].childNodes[0].nodeValue + "</li>" + "<li>År: " + x[i].getElementsByTagName("YEAR")[0].childNodes[0].nodeValue + "</li>" + "</ul>"; }
- Föregående sida AJAX-databas
- Nästa sida AJAX-exempel