| Interstage Shunsaku Data Manager アプリケーション開発ガイド - Microsoft(R) Windows(R) 2000/ Microsoft(R) Windows Server(TM) 2003 - - UNIX共通 - |
目次
索引
![]()
|
| 第1部 アプリケーション開発の基本 | > 第3章 データを検索する方法 | > 3.5 検索結果をソートする |
XML文書の任意の要素ノードまたはその要素ノードの属性ノードが持つ文字列を数値とみなしてソートすることができます。数値とみなしてソートするには、ソート式のキー指定に、単一行関数指定のval関数を指定します。val関数の引数には、テキスト式または属性式を指定します。
単一行関数指定の詳細については、“B.2.4 単一行関数指定”を参照してください。
例として以下の文書があるものとします。
文書A
<doc>
<basic expense="7650円">
:
</basic>
<detail>
:
<taxi>1890円</taxi>
:
</detail>
</doc> |
文書B
<doc>
<basic expense="12980円">
:
</basic>
<detail>
:
<taxi>11150円</taxi>
:
</detail>
</doc> |
文書C
<doc>
<basic expense="出張費不要">
:
</basic>
<detail>
:
<taxi>3750円</taxi>
:
</detail>
</doc> |
文書D
<doc>
<basic expense="480円">
:
</basic>
<detail>
:
<taxi>7400円</taxi>
:
</detail>
</doc> |
例1
タクシー代(taxi)の安い順(昇順)にソートします。
val(/doc/detail/taxi/text())結果:文書A、C、D、Bの順に返却されます。
例2
出張費用(expense)の安い順(昇順)にソートします。
val(/doc/basic/@expense)結果:文書C、D、A、Bの順に返却されます。

テキスト式で指定したXML文書中のテキストノードの文字列に数字を含まない場合は、val関数はその値を0とみなします。この例では、文書Cの出張費用は0として扱われています。
また、テキスト式で指定したXML文書中のテキストノードがない場合は、そのXML文書は最後に返却されます。
数値の大きい順(降順)にソートしたい場合は、キー指定のあとに“DESC”を指定します。
例3
タクシー代(taxi)の高い順(降順)にソートします。
val(/doc/detail/taxi/text()) DESC結果:文書 B、D、C、Aの順に返却されます。
例4
出張費用(expense)の高い順(降順)にソートします。
val(/doc/basic/@expense) DESC結果:文書 B、A、D、Cの順に返却されます。
目次
索引
![]()
|