■XMLファイルを操作します
XMLとはアプリケーション間でデータのやりとりが容易にできるなど、今後もっとも流行するであろう
文書やデータの意味や構造を記述するためのマークアップ言語の一つです。
以下がXMLファイルの一例になります。タグ名称を自分で指定できるのが大きな特徴です。
<?xml version="1.0" encoding="UTF-8" ?>
<userlist>
<user>
<Number>1111</Number>
<Syain>Lucy Angel</Syain>
</user>
<user>
<Number>2222</Number>
<Syain>Jack Nicoleson</Syain>
</user>
<user>
<Number>3333</Number>
<Syain>Daniel Part</Syain>
</user>
</userlist>
それでは上のXMLファイルをサーバーから取得してみましょう。その際、ページ全体を読みこまずに済む
事を意識してください。これがまさにAjaxの醍醐味です。
サンプルは
こちらから実行できます。
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=shift_jis">
<title>サーバー上のXMLファイルを読み込む</title>
<script type="text/javascript" src="xmlhttp.js"></script>
<script type="text/javascript"><!--
function getXMLFile(FileName)
{
httpObj = createXMLHttpRequest(readComplete);
if (httpObj)
{
httpObj.open("GET",FileName,true);
httpObj.send(null);
}
}
function readComplete()
{
if ((httpObj.readyState == 4) && (httpObj.status == 200))
{
xmlData = httpObj.responseXML;//取得したXMLファイルを変数へ格納します
//XMLデータを編集します。やり方はいくつかありますが、一番オーソドックスなやり方を示します。
Syain_Tag = xmlData.getElementsByTagName("Syain");
Number_Tag = xmlData.getElementsByTagName("Number");
User_Tag = xmlData.getElementsByTagName("user");
userLen = User_Tag.length; //件数を取得します
resultText = ""; //データの内容を表示するための変数
for(i=0; i<userLen; i++){
//取得したタグのテキストデータを編集します
s_name = Syain_Tag[i].childNodes[0].nodeValue;
s_num = Number_Tag[i].childNodes[0].nodeValue;
resultText = resultText + s_num + " : " + s_name + "<br>";
}
$("result").innerHTML = resultText;
}else{
$("result").innerHTML = "<b>Loading...</b>";
}
}
--></script>
</head>
<body>
<p>XMLファイルを読み込む
<form name="ajaxForm">
<input type="button" onClick="getXMLFile('file.xml')"><br>
</form>
<div id="result"></div>
</body>
</html>