数値としてデータをソートする

書式

<div spry:region="XMLdatabaseName">
<div spry:repeat="XMLdatabaseName">
<span>〜</span>
</div>
</div>

XMLdatabaseName.setColumnType(targetXMLtag, "number")
XMLdatabaseName.sort(targetXMLtag)

XMLdatabaseName : XMLデータベース名
targetXMLtag : ソート対象となるXMLタグ名(単独または配列形式で指定)

説明

数値としてデータをソートするには、あらかじめ対象となるタグが数値形式であることを指定しておく必要があります。この指定を行うのがsetColumnType()です。パラメータには対象となるタグ名と"number"を指定します。setColumnType()で明示的にデータの型が示されない場合、"string"(文字列型)としてソートされます。setColumnType()で型を指定した後でsort()メソッドを使います。パラメータにはソート対象となるXMLタグ名を指定します。複数のタグをソート対象にするには["name", "price"]のように配列形式で指定します。

サンプルコード [実行]

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<title>Sample</title>
<script src="js/xpath.js" type="text/javascript"></script>
<script src="js/SpryData.js" type="text/javascript"></script>
<script type="text/javascript"><!--
myDatabase = new Spry.Data.XMLDataSet("data.xml", "/list/fruits");
myDatabase.setColumnType("price", "number");
// --></script>
</head>
<body>
<h1>Adobe Spry : XMLデータ処理サンプル</h1>
<form>
<input type="button" value="価格を文字コード順で並び替え(ソート)" onClick="myDatabase.sort('price')">
</form>
<div spry:region="myDatabase">
<div spry:repeat="myDatabase">
<span>{myDatabase::name}は{myDatabase::color}で{myDatabase::price}</span>円です。
</div>
</div>
</body>
</html>