Andrew G. Johnson
Andrew G. Johnson

Reputation: 26993

XSLT problem concerning call-template & with-param

I'm banging my head against the wall trying to figure out why this won't work:

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

Output is: -~~- when what I want is -~WTF~-

Upvotes: 1

Views: 376

Answers (2)

AJPerez
AJPerez

Reputation: 3595

First of all, as RonK said, your parameter names should match.

Also, if you want to pass the value "WTF" (instead of XML node "WTF"), you've to single-quote it:

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

Upvotes: 6

RonK
RonK

Reputation: 9652

I haven't touched XSLT for quite some time - but I think your parameter names should match. Meaning:

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

Try it.

Upvotes: 2

Related Questions