XMLデータをソートして表示する(Adobe Spry)

説明

Adobe SpryフレームワークではXMLデータを文字列、数値順にソートすることができます。ソート対象が数値の場合にはsetColumnType()を使って対象となるタグの型を指定します。サンプルではpriceタグをnumber(数値型)として設定しています。
ソート対象のデータ型を設定したら、sort()メソッドを使ってソート処理を実行します。このメソッドのパラメータにソート対象となるXMLタグ名を指定します。複数のタグ名でソートする場合には配列として指定します。2番目のパラメータはソート順を切り替えるかどうかを指定します。sort()メソッドを呼び出すたびに昇順、降順を切り替えるには"toggle"の文字列を指定します。
JavaScriptテクニック ブック  詳しい解説などはJavaScriptテクニック ブックを参照してください。

サンプルコード [実行]

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<title>JavaScript Sample</title>
<link rel="stylesheet" type="text/css" href="main.css" media="all">
<script src="xpath.js" type="text/javascript"></script>
<script src="SpryData.js" type="text/javascript"></script>
<script type="text/javascript" src="main.js"></script>
</head>
<body>
<h1>XMLデータをソートして表示する(Adobe Spry)</h1>
<form action="./sort.cgi" method="get" name="mainForm">
<input type="button" id="sortButton" value="ソート">
</form>
<div spry:region="myDatabase">
<div spry:repeat="myDatabase">
<span>{myDatabase::name}は{myDatabase::color}で{myDatabase::price}</span>円
</div>
</div>
</body>
</html>

myDatabase = new Spry.Data.XMLDataSet("data.xml", "/list/fruits");
myDatabase.setColumnType("price", "number");
window.onload = function(){
document.getElementById("sortButton").onclick = function(){
myDatabase.sort("price")
}
}