・カレントノードセット内の最後のノード番号を返す。これは、カレントノードセット内のノード数を返すことにもなる。
・ソートした場合は、ソート後の結果に対して作用する。これを利用すれば最大値/最小値を得られる。
[サンプルXML文書を表示](下のフレームに)
XMLソース
<?xml version="1.0" encoding="Shift_JIS" ?>
<?xml-stylesheet type="text/xsl" href="last01.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>
<end>以上です(2004/8/15)</end>
</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><H3><xsl:value-of select="root/title"/></H3></center>
<xsl:apply-templates select="root/data"/>
<xsl:apply-templates select="root/data/kabu"/>
</xsl:template>
<xsl:template match="data">
最後から3番目の銘柄は:<xsl:value-of select="kabu[position()=last()-2]/name" />、
終値:<xsl:value-of select="kabu[position()=last()-2]/end" />円、
出来高:<xsl:value-of select="kabu[position()=last()-2]/total" />(千株)<br/>
最後から2番目の銘柄は:<xsl:value-of select="kabu[last()-1]/name" />、
終値:<xsl:value-of select="kabu[last()-1]/end" />円、
出来高:<xsl:value-of select="kabu[last()-1]/total" />(千株)<br/>
最後の銘柄は:<xsl:value-of select="kabu[last()]/name" />、
終値:<xsl:value-of select="kabu[last()]/end" />円、
出来高:<xsl:value-of select="kabu[last()]/total" />(千株)<br/>
先頭の銘柄は:<xsl:value-of select="kabu[position()=1]/name" />、
終値:<xsl:value-of select="kabu[position()=1]/end" />円、
出来高:<xsl:value-of select="kabu[position()=1]/total" />(千株)<br/>
2番目の銘柄は:<xsl:value-of select="kabu[2]/name" />、
終値:<xsl:value-of select="kabu[2]/end" />円、
出来高:<xsl:value-of select="kabu[2]/total" />(千株)<br/>
<xsl:for-each select="kabu">
<xsl:sort select="total" data-type="number"/>
<xsl:if test="position()=last()">
<h4>出来高の最大値は==
<xsl:value-of select="name"/>:<xsl:value-of select="total"/>(千株)</h4>
</xsl:if>
</xsl:for-each>
<xsl:for-each select="kabu">
<xsl:sort select="total" data-type="number" order="descending"/>
<xsl:if test="position()=last()">
<h4>出来高の最小値は==
<xsl:value-of select="name"/>:<xsl:value-of select="total"/>(千株)</h4>
</xsl:if>
</xsl:for-each>
</xsl:template>
<xsl:template match="kabu">
<xsl:if test="position()=last()-4">
銘柄総数は:<xsl:value-of select="last()" /> 銘柄<br/>
最後から5番目の内容は:<xsl:value-of select="name" />、
終値:<xsl:value-of select="end" />円、
出来高:<xsl:value-of select="total" />(千株)<br/>
</xsl:if>
<xsl:if test="position()=last()-2">
最後から3番目の内容は:<xsl:value-of select="name" />、
終値:<xsl:value-of select="end" />円、
出来高:<xsl:value-of select="total" />(千株)<br/>
</xsl:if>
</xsl:template>
</xsl:stylesheet>
end(04/8/15)