当我调用模板时,它工作正常。你怎么称呼它?这是我用过的:
<xsl:call-template name="addProperty">
<xsl:with-param name="name" select="'abc'"/>
<xsl:with-param name="value" select="'123'"/>
</xsl:call-template>
<xsl:call-template name="addProperty">
<xsl:with-param name="name" select="'abc'"/>
<xsl:with-param name="value" select="123"/>
</xsl:call-template>
<xsl:call-template name="addProperty">
<xsl:with-param name="name" select="'xyz'"/>
<xsl:with-param name="value" select="'456.789'"/>
</xsl:call-template>
<xsl:call-template name="addProperty">
<xsl:with-param name="name" select="'xyz'"/>
<xsl:with-param name="value" select="456.789"/>
</xsl:call-template>
这就是我得到的输出:
abc:'123',abc:'123',xyz:456.789,xyz:456.789,
是否不能将值传递给您认为要传递的命名模板?您使用的是什么XSLT引擎?
测试这一点的一个好方法是将类似这样的东西添加到命名模板中,并查看它产生的结果,如果您手头没有一个好的调试器:
XXX<xsl:value-of select="$value"/>XXX
YYY<xsl:value-of select="contains($value, '.')"/>YYY
ZZZ<xsl:value-of select="not(contains($value, '.'))"/>ZZZ