XML アプリケーション

❮ 前章へ 次章へ ❯

この章では、XML、HTTP、DOM、およびJavaScriptを使用するいくつかのHTMLアプリケーションについて説明します。


使用する XML 文書

この章では、"cd_catalog.xml"というXMLファイルを使用します。


HTMLテーブルにXMLデータを表示する

この例では、各<CD>要素をループし、<ARTIST>要素と<TITLE>要素の値をHTMLのテーブルに表示します:

<html>
<head>
<style>
table, th, td {
  border: 1px solid black;
  border-collapse:collapse;
}
th, td {
  padding: 5px;
}
</style>
</head>
<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", "cd_catalog.xml", true);
  xmlhttp.send();
}
function myFunction(xml) {
  var i;
  var xmlDoc = xml.responseXML;
  var table="<tr><th>Artist</th><th>Title</th></tr>";
  var x = xmlDoc.getElementsByTagName("CD");
  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>
Try it Yourself »

JavaScriptとXML DOMの使用に関するの詳細は、DOM イントロをご覧ください。


HTMLのdiv要素に最初のCDを表示する

この例では、id="showCD"のHTML要素に最初のCD要素を表示する関数を使用しています:

displayCD(0);

function displayCD(i) {
    var xmlhttp = new XMLHttpRequest();
    xmlhttp.onreadystatechange = function() {
        if (this.readyState == 4 && this.status == 200) {
            myFunction(this, i);
        }
    };
    xmlhttp.open("GET", "cd_catalog.xml", true);
    xmlhttp.send();
}

function myFunction(xml, i) {
    var xmlDoc = xml.responseXML;
    x = xmlDoc.getElementsByTagName("CD");
    document.getElementById("showCD").innerHTML =
    "Artist: " +
    x[i].getElementsByTagName("ARTIST")[0].childNodes[0].nodeValue +
    "<br>Title: " +
    x[i].getElementsByTagName("TITLE")[0].childNodes[0].nodeValue +
    "<br>Year: " +
    x[i].getElementsByTagName("YEAR")[0].childNodes[0].nodeValue;
}
Try it Yourself »

CD間をナビゲートする

上の例のCD間をナビゲートするために、next()関数とprevious()関数を追加します:

function next() {
  // display the next CD, unless you are on the last CD
  if (i < x.length-1) {
    i++;
    displayCD(i);
  }
}

function previous() {
  // display the previous CD, unless you are on the first CD
  if (i > 0) {
  i--;
  displayCD(i);
  }
}
Try it Yourself »

CDをクリックした時にアルバム情報を表示する

最後の例は、ユーザーがCDをクリックしたときにアルバム情報を表示する方法を示しています:

Try it yourself.


❮ 前章へ 次章へ ❯