備忘録的リファレンス

<xsl:sort>エレメント

 <xsl:sort>エレメントは、XMLデータをソートするxsltの機能です。

 書き方としては、<xsl:for-each>エレメントの間に<xsl:sort>エレメントを編集します。

<xsl:sort>エレメントの属性

<xsl:sort
	select="ソート対象のエレメント名"
	lang={"ソートの言語"}
	data-type={"text" | "number" | "名前空間接頭辞付きの修飾名"} <!-- 文字列のデータ型 -->
	order={"ascending" | "descending"} <!-- 昇順、降順 -->
	case-order={"upper-first" | "lower-first"} <!-- data-typeが"text"のとき、大文字と小文字の優先順位 -->
/>

Example

XML
<?xml version="1.0" encoding="shift_jis"?>
<?xml:stylesheet type="text/xsl" href="sort.xsl"?>
<datalist>
  <data number="1">A</title>
  <data number="2">B</title>
  <data number="3">C</title>
  <data number="4">D</title>
</datalist>
XSL
<?xml version="1.0" encoding="shift_jis"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:template match="/">
    <html>
      <body>
        <xsl:apply-templates/>
      </body>
    </html>
  </xsl:template>
  <xsl:template match="datalist">
    <h2>test list</h2gt;
    <ul>
      <xsl:for-each select="datalist">
        <xsl:sort select="./@number" data-type="number" order="ascending"/>
        <li><xsl:value-of select="."/>(番号:<xsl:value-of select="./@number"/>)</li>
      </xsl:for-each>
    </ul>
  </xsl:template>
</xsl:stylesheet>