关于call-template& amp;的XSLT问题与-PARAM

时间:2010-06-18 20:16:35

标签: xslt

我正在撞墙,试图弄清楚为什么这不起作用:

<xsl:call-template name="test-template">
    <xsl:with-param name="item" select="WTF" />
</xsl:call-template>

<xsl:template name="test-template">
    <xsl:param name="item" />
    -~<xsl:value-of select="$item" />~-
</xsl:template>

输出为:-~~-我想要的是-~WTF~-

2 个答案:

答案 0 :(得分:6)

首先,正如RonK所说,你的参数名称应该匹配。

此外,如果您想传递值“WTF”(而不是XML节点“WTF”),您只需单引号:

<xsl:call-template name="test-template">
    <xsl:with-param name="item" select="'WTF'" />
</xsl:call-template>

<xsl:template name="test-template">
    <xsl:param name="item" />
    -~<xsl:value-of select="$item" />~-
</xsl:template>

答案 1 :(得分:2)

我还没有触及XSLT很长一段时间 - 但我认为你的参数名称应该匹配。含义:

<xsl:call-template name="test-template">
    <xsl:with-param name="is-item-page" select="WTF" />
</xsl:call-template>

<xsl:template name="test-template">
    <xsl:param name="is-item-page" />
    -~<xsl:value-of select="$item" />~-
</xsl:template>

试试吧。