<xsl:sort>によるソートの練習1
<xsl:for-each>を使って2回出力している。1回目はそのまま(ソートなし)で
2回目は<xsl:sort>を使って年齢の昇順でソートして出力している。
<xsl:sort>で指定するのは、select属性、data-type属性、order属性の3つ。
【sample025.xml】
<?xml version="1.0" encoding="Shift_JIS" ?>
<?xml-stylesheet href="sample025.xsl" type="text/xsl" ?>
<名簿>
<会員>
<名前>山田太郎</名前>
<年齢>58</年齢>
<性別>男</性別>
</会員>
<会員>
<名前>鈴木一郎</名前>
<年齢>30</年齢>
<性別>男</性別>
</会員>
<会員>
<名前>田中花子</名前>
<年齢>28</年齢>
<性別>女</性別>
</会員>
<会員>
<名前>吉田啓介</名前>
<年齢>60</年齢>
<性別>男</性別>
</会員>
<会員>
<名前>三好恵子</名前>
<年齢>31</年齢>
<性別>女</性別>
</会員>
<会員>
<名前>仲川忍</名前>
<年齢>29</年齢>
<性別>男</性別>
</会員>
</名簿>
【sample025.xsl】
<?xml version="1.0" encoding="Shift_JIS" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" encoding="Shift_JIS" />
<xsl:template match="名簿">
<html>
<head><title>ソートの練習1</title></head>
<body>
<h2>ソートの練習1</h2>
<b>そのまま出力(ソートなし)</b>
<xsl:for-each select="会員">
<p>
<xsl:value-of select="名前" />
[<xsl:value-of select="年齢" />]
<xsl:value-of select="性別" />
</p>
</xsl:for-each>
<b>年齢の昇順でソート</b>
<xsl:for-each select="会員">
<xsl:sort select="年齢" data-type="number" order="ascending" />
<p>
<xsl:value-of select="名前" />
[<xsl:value-of select="年齢" />]
<xsl:value-of select="性別" />
</p>
</xsl:for-each>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
【結果】