XML > XSLT > ソート
ソート
ソート処理をさせる場合は
xsl:sort
を使う。
xsl:sort
は
xsl:for-each
または
xsl:apply-templates
の
子要素として記述可能。
ただし、
xsl:for-each
の子要素として記述する場合はテンプレートより前に記述する。
(書式)
<xsl:sort select="ノード文字列"
lang="言語"
datatype={"text" | "number" | "修飾名" }
order={"ascending" | "descending"}
case-order={"upper-first" | "lower-first"}
/>
|
属性 | 概要 |
select | ソートキーとなるノード文字列 省略時は処理ノードとなる |
lang | ソートキーの言語 |
datatype |
文字列のデータ型
属性値 | 概要 |
text | テキスト |
number | 数値 |
修飾名 | 修飾名 |
|
order |
ソート順
属性値 | 概要 |
ascending | 昇順(デフォルト) |
descending | 降順 |
|
case-order |
大文字・小文字のどちらを優先するか
datatype="text" の場合のみ有効
属性値 | 概要 |
upper-first | 大文字優先 |
lower-first | 子文字優先 |
|
(例)
XML 文章が
<社員><社員番号>1001</社員番号><氏名>山田太郎</氏名></社員>
<社員><社員番号>1002</社員番号><氏名>鈴木花子</氏名></社員>
<社員><社員番号>1003</社員番号><氏名>田中次郎</氏名></社員>
XSLT が
<xsl:for-each select="社員">
<xsl:sort select="社員番号" order="descending"/>
<xsl:value-of select="氏名"/>
</xsl:for-each>
の場合、
出力結果は
田中次郎
鈴木花子
山田太郎
となる
|