This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re: problem with Passing Parameters to Templates
- To: xsl-list at lists dot mulberrytech dot com
- Subject: Re: [xsl] problem with Passing Parameters to Templates
- From: David Carlisle <davidc at nag dot co dot uk>
- Date: Fri, 19 Jan 2001 15:47:12 GMT
- References: <872569D9.0053167C.00@server2.savillemail.com>
- Reply-To: xsl-list at lists dot mulberrytech dot com
<xsl:template name="opt_template">
<xsl:param name="node"></xsl:param>
<xsl:text>$node</xsl:text> ------ Is this the right way to
output parameter value?
No. That would output th etext string $node.
probably you wanted <xsl:value-of select="$node"/>
<xsl:if test="//*[$node]">
That is legal but not what you wanted. (It's hard to guess what you did
want) but anyway what that does is, if $node is the empty string
(which is the default value of your parameter) then it counts as the
boolean false value, so you "//*[$node] will search the entire document
(//*) testing whether false is true , and then return nothing
that will count as false and so the if test clause will be skipped.
If $node is any other value it will count as true, in which case the
select is //* and so it will return a non empty node set if there are
any input elements at all, and so the test will count as true.
<xsl:value-of select=".//$node"/> --------------expected
node test???
<xsl:value-of select="$node"/>
would be legal but I suspect that you want
<xsl:value-of select=".//*[name()=$node]"/>
Note that you can _not_ create Xpath expressions on the fly and evaluate
them. (This is a FAQ).
David
_____________________________________________________________________
This message has been checked for all known viruses by Star Internet delivered
through the MessageLabs Virus Control Centre. For further information visit
http://www.star.net.uk/stats.asp
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list