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の順に返却されます。
目次
索引
![]() ![]() |