ソート

ソート(並べ替え)

xsl:apply-templates 要素や xsl:for-each 要素は、 何も指定しないと元の文書に現れる順序でマッチしていきます。 これを別の順序にすることができます。

xsl:apply-templates 要素または xsl:for-each 要素の子要素に xsl:sort 要素を追加することで順序づけを行います。 ソートキーは select 属性で指定します。 ソートキーを複数設定したい場合、1番目の xsl:sort 要素に1次ソートキー、2番目の xsl:sort 要素に2次ソートキー、というように指定していきます。

  <xsl:sort select="式" lang="ja"
     data-type = "text"(辞書順)または "number"(数値の順)
     order = "ascending"(昇順)または "descending"(降順)
     case-order = "upper-first"(大文字が先)または "lower-first"(小文字が先)
   />

指定しないと、data-type="text", order="ascending"、 つまり辞書順、昇順になります。

さきほどの例では、

      <xsl:apply-templates select="bands/band"/>

の部分を以下のように書き換えると、バンド/アーティスト名の昇順で並びます。

      <xsl:apply-templates select="bands/band">
        <xsl:sort select="." data-type="text" order="ascending" />
      </xsl:apply-templates>