AJAX は、XML ファイルとの双方向通信に使用することができます。
次の例は、AJAX により、Web ページがどのように XML ファイルから情報を取出すことができるかを示しています:
ユーザが、上記 "CD 情報取得" ボタンをクリックすると、loadXMLDoc() 関数が実行されます。
loadXMLDoc() 関数は、XMLHttpRequest オブジェクトを作成し、サーバ・レスポンスが準備完了のときに実行される関数を追加し、 サーバにリクエストを送信します。
サーバ・レスポンスが処理完了したときに、HTMLテーブルを作成し、ノード(要素)を XML ファイルから取り出し、 最終的に、XML データを埋めた HTML テーブルにより要素 "demo" プを更新します:
function loadDoc() {
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState
== 4 && this.status == 200) {
myFunction(this);
}
};
xhttp.open("GET", "cd_catalog.xml", true);
xhttp.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;
}
上記例で使用したXML ファイルは、次のファイルです:"cd_catalog.xml"。