代码之家  ›  专栏  ›  技术社区  ›  Andrew G. Johnson

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

  •  1
  • Andrew G. Johnson  · 技术社区  · 14 年前

    我把头撞在墙上想弄明白为什么这样不行:

    <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 回复  |  直到 14 年前
        1
  •  6
  •   AJPerez apetrelli    14 年前

    首先,正如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>
    
        2
  •  2
  •   RonK    14 年前

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

    试试看。