<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>


【結果】