关于调用模板和 with-param 的 XSLT 问题

XSLT problem concerning call-template & with-param

提问人:Andrew G. Johnson 提问时间:6/19/2010 最后编辑:Andrew G. Johnson 更新时间:6/20/2010 访问量:365

问:

我把头撞在墙上,试图弄清楚为什么这行不通:

<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~-

XSLT的

评论


答:

2赞 RonK 6/19/2010 #1

我已经有一段时间没有接触过 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>

试试吧。

6赞 AJPerez 6/19/2010 #2

首先,正如 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>