ソートの応用(最大値・最小値)

数値データを昇順"ascending"にソートし(降順"descending"でもよい)、先頭が最小値になり、最後が最大値になる。

[サンプルXML文書を表示](下のフレームに)

order属性を省略した場合、昇順"ascending"となる

XMLソース

<?xml version="1.0" encoding="Shift_JIS" ?>
<?xml-stylesheet type="text/xsl" href="sort06.xsl"?>
<root>
<title>2003年11月05日の東証株式第一部情報</title>
<info><name>銘柄</name><end>終値(円)</end><total>出来高(千株)</total></info>
<data>
<kabu><name code="6752">松下</name><end>1529</end><total>12302</total></kabu>
<kabu><name code="6753">シャープ</name><end>1786</end><total>3964</total></kabu>
<kabu><name code="6758">ソニー</name><end>4030</end><total>8220</total></kabu>
<kabu><name code="6764">三洋</name><end>516</end><total>7551</total></kabu>
<kabu><name code="6501">日立</name><end>692</end><total>21896</total></kabu>
<kabu><name code="6502">東芝</name><end>440</end><total>17832</total></kabu>
<kabu><name code="6701">NEC</name><end>1027</end><total>19229</total></kabu>
<kabu><name code="6702">富士通</name><end>708</end><total>16634</total></kabu>
</data>
</root>

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="/">
<center><H4>ソート処理を利用した最小値・最大値の取得</H4></center>
<xsl:apply-templates select="root/data"/>
</xsl:template>

<xsl:template match="data">
<xsl:for-each select="kabu">
<xsl:sort select="total" data-type="number"/>
<xsl:if test="position()='1'">
<h5>出来高の最小値は</h5>
<xsl:value-of select="name"/>:<xsl:value-of select="total"/>
</xsl:if>
<xsl:if test="position()=last()">
<h5>出来高の最大値は</h5>
<xsl:value-of select="name"/>:<xsl:value-of select="total"/>
</xsl:if>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>

end(04/6/17)