XML Toepassing
- Vorige pagina AJAX-database
- Volgende pagina AJAX Voorbeeld
Dit hoofdstuk demonstreert een HTML-toepassing die XML, HTTP, DOM en JavaScript gebruikt.
gebruikte XML-document
In dit hoofdstuk zullen we een document gebruiken genaamd "music_list.xmlvan de XML-bestand.
Toon XML-gegevens in een HTML-tabel
Deze voorbeeld loopt door elke <TRACK>-element en toont vervolgens de waarden van de <ARTIST> en <TITLE>-elementen in een HTML-tabel:
Voorbeeld
<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>Artiest</th><th>Titel</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>
Voor meer informatie over het gebruik van JavaScript en XML DOM, bezoek DOM Inleiding。
Toon het eerste nummer in een HTML div-element
In dit voorbeeld wordt een functie gebruikt om het eerste nummer in de HTML-element met id="displayMUSIC" weer te geven:
Voorbeeld
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>Nummer: " + x[i].getElementsByTagName("TITLE")[0].childNodes[0].nodeValue + "</li>" + "<li>Artiest: " + 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>Bedrijf: " + x[i].getElementsByTagName("COMPANY")[0].childNodes[0].nodeValue + "</li>" + "<li>Jaar: " + x[i].getElementsByTagName("YEAR")[0].childNodes[0].nodeValue + "</li>" + "</ul>"; }
Navigeren tussen nummers
Om tussen de nummers in het voorbeeld te navigeren, voeg de functies next() en previous() toe:
Voorbeeld
function next() { // Toon het volgende nummer, tenzij je bij het laatste nummer bent if (i < x.length-1) { i++; displayMUSIC(i); } } function previous() { // Toon het vorige nummer, tenzij je bij het eerste nummer bent if (i > 0) { i--; displayMUSIC(i); } }
Toon albuminformatie bij klikken op een nummer
Deze laatste voorbeeld toont hoe je de informatie van een album weergeeft wanneer een gebruiker op een nummer klikt:
Voorbeeld
function displayMUSIC(i) { document.getElementById("showMUSIC").innerHTML = "<ul>" + "<li>Nummer: " + x[i].getElementsByTagName("TITLE")[0].childNodes[0].nodeValue + "</li>" + "<li>Artiest: " + 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>Bedrijf: " + x[i].getElementsByTagName("COMPANY")[0].childNodes[0].nodeValue + "</li>" + "<li>Jaar: " + x[i].getElementsByTagName("YEAR")[0].childNodes[0].nodeValue + "</li>" + "</ul>"; }
- Vorige pagina AJAX-database
- Volgende pagina AJAX Voorbeeld