名前付きテンプレート 2

*このサンプルの「日立」にはパラメータ値が設定されていない。そこで<xsl:param>で指定されているデフォルト値"beige"が適用される。

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

XMLソース

<?xml version="1.0" encoding="Shift_JIS" ?>
<?xml-stylesheet type="text/xsl" href="temp08.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="6501">日立</name><end>692</end><total>21896</total></kabu>
</data>
<end>以上です(2004/5/17)</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:template>
<xsl:template match="kabu[1]">
<xsl:call-template name="templateX">
<xsl:with-param name="backC">pink</xsl:with-param>
</xsl:call-template>
</xsl:template>
<xsl:template match="kabu[2]">
<xsl:call-template name="templateX">
<xsl:with-param name="backC">lightblue</xsl:with-param>
</xsl:call-template>
</xsl:template>
<xsl:template match="kabu[3]">
<xsl:call-template name="templateX">
<xsl:with-param name="backC">linen</xsl:with-param>
</xsl:call-template>
</xsl:template>
<xsl:template match="kabu[4]">
<xsl:call-template name="templateX"/>
</xsl:template>
<!--繰り返し呼び出され利用される名前付きテンプレート-->
<xsl:template name="templateX">
<xsl:param name="backC" select="'beige'"/>
<div style="background-color:{$backC}">
<xsl:value-of select="name"/>・・・
終値:<xsl:value-of select="end"/>(円)/
出来高:<xsl:value-of select="total"/>(株)
</div>
</xsl:template>
</xsl:stylesheet>

end(04/5/17)