XML アプリケーション
- 前のページ AJAX データベース
- 次のページ AJAX インスタンス
この章では、XML、HTTP、DOM、JavaScriptを使用したHTMLアプリケーションを示します。
使用するXMLドキュメント
この章では、"music_list.xmlのXMLファイル。
HTMLテーブルにXMLデータを表示
この例では、各<TRACK>要素を巡回し、HTMLテーブルに<ARTIST>および<TITLE>要素の値を表示します:
例
<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要素に第一曲を表示する
この例では、id="displayMUSIC"のHTML要素に第一曲を表示するための関数を使用しています:
例
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 インスタンス