This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re: Q: Passing constructed elements as parameters
- To: xsl-list at lists dot mulberrytech dot com
- Subject: Re: [xsl] Q: Passing constructed elements as parameters
- From: David Carlisle <davidc at nag dot co dot uk>
- Date: Wed, 31 Jan 2001 19:27:04 GMT
- References: <200101311904.LAA19032@avallon.eng.sun.com>
- Reply-To: xsl-list at lists dot mulberrytech dot com
Hi, I'm trying to do something like:
<xsl:apply-template>
<xsl:with-param name="foo">
<xsl:element name="bar"> ... </xsl:element>
</xsl:with-param>
</xsl:apply-template>
<xsl:template>
assuming you mean <xsl:template match="xxx"> here
<xsl:param name="foo"/>
<xsl:for-each select="$foo/bar"/>
</xsl:template>
But something seems to be lost in the translation. Is there some conversion
step I'm missing?
--George
if the xxx element that matches the second template is a direct
child of the template that has the apply-templates code at the top
then it will see the seting of the foo parameter. (otherwise it won't as
parameters are not passed on by default)
However if you go
<xsl:with-param name="foo">
....
</xsl:with-param>
rather than
<xsl:with-param name="foo" select="..."/>
then $foo wilkl be a result tree fragment rather than a node set,
so you can not query into it with <xsl:for-each select="$foo/bar"/>
It's not clear from what you've posted whether you want to use th e
<xsl:with-param name="foo" select="..."/> for and have $ foo
being a set of nodes in the input document, or whether you did intent to
construct a new node set, in which case you processor may have a
node-set() extension function, used as
<xsl:for-each select="xt:node-set($foo)/bar"/>
David
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list