XML sovellus
- Edellinen sivu AJAX-tietokanta
- Seuraava sivu AJAX esimerkki
Tämä luku esittelee HTML-sovelluksen, joka käyttää XML, HTTP, DOM ja JavaScriptia.
käytettävä XML-dokumentti
Tässä luvussa käytämme nimeä "music_list.xml" XML-tiedostossa.
Näytä XML-tiedot HTML-taulukossa
Tämä esimerkki käy läpi jokaisen <TRACK>-elementin ja näyttää <ARTIST>- ja <TITLE>-elementtien arvot HTML-taulukossa:
esimerkki
<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>
Lisätietoja JavaScriptin ja XML DOM:n käytöstä löydät DOM-esittely。
Näytä ensimmäinen kappale HTML div-elementissä
Tässä esimerkissä käytetään funktiota näyttämään ensimmäinen kappale id="displayMUSIC" -HTML-elementissä:
esimerkki
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>Artisti:" + x[i].getElementsByTagName("ARTIST")[0].childNodes[0].nodeValue + "</li>" + "<li>Albumi:" + x[i].getElementsByTagName("ALBUM")[0].childNodes[0].nodeValue + "</li>" + "<li>Maa:" + x[i].getElementsByTagName("COUNTRY")[0].childNodes[0].nodeValue + "</li>" + "<li>Yritys:" + x[i].getElementsByTagName("COMPANY")[0].childNodes[0].nodeValue + "</li>" + "<li>Vuosi:" + x[i].getElementsByTagName("YEAR")[0].childNodes[0].nodeValue + "</li>" + "</ul>"; }
Navigoi kappaleiden välillä
Jos haluat navigoida esimerkin kappaleissa, lisää next() ja previous() -funktiot:
esimerkki
function next() { // Näytä seuraava kappale, ellei ole viimeisessä if (i < x.length-1) { i++; displayMUSIC(i); } } function previous() { // Näytä edellinen kappale, ellei ole ensimmäisessä if (i > 0) { i--; displayMUSIC(i); } }
Näytä albumitiedot napsauttaessa kappaleesta
Tässä viimeisessä esimerkissä näytetään, miten albumitiedot näytetään, kun käyttäjä napsauttaa tiettyä kappaleesta:
esimerkki
function displayMUSIC(i) { document.getElementById("showMUSIC").innerHTML = "<ul>" + "<li>曲子:" + x[i].getElementsByTagName("TITLE")[0].childNodes[0].nodeValue + "</li>" + "<li>Artisti:" + x[i].getElementsByTagName("ARTIST")[0].childNodes[0].nodeValue + "</li>" + "<li>Albumi:" + x[i].getElementsByTagName("ALBUM")[0].childNodes[0].nodeValue + "</li>" + "<li>Maa:" + x[i].getElementsByTagName("COUNTRY")[0].childNodes[0].nodeValue + "</li>" + "<li>Yritys:" + x[i].getElementsByTagName("COMPANY")[0].childNodes[0].nodeValue + "</li>" + "<li>Vuosi:" + x[i].getElementsByTagName("YEAR")[0].childNodes[0].nodeValue + "</li>" + "</ul>"; }
- Edellinen sivu AJAX-tietokanta
- Seuraava sivu AJAX esimerkki