Re: [xsl] Can a named template return a node list?

Subject: Re: [xsl] Can a named template return a node list?
From: David Carlisle <davidc@xxxxxxxxx>
Date: Thu, 16 Jun 2005 15:40:52 +0100
 <xsl:variable name="somenode">
     ....

xsl:variable with content and no select attribute always (in xslt1)
generates a result tree fragment not a node set. Therefor you can not
query into the variable using XPath (or anything else) You can only copy
it to the result, using copy-of or use it as a string.


> and I am hoping  to stay away from XSL extensions if possible.

It's hard to avoid xx:node-set() (which is designed exactly to get round
this problem) Most systems have a node-set() extension function (with
mozilla's transformiix engine being the main exception)

Of course if your templates are not actually creating any new nodes (as
in your example) then you have an easy solution: just use xsl:variable
with select as in

<xsl:template match="*">
   <xsl:variable name="somenode"select="/root/node1" />
   <xsl:value-of select="$somenode/@attr" />
</xsl:template>

David

________________________________________________________________________
This e-mail has been scanned for all viruses by Star. The
service is powered by MessageLabs. For more information on a proactive
anti-virus service working around the clock, around the globe, visit:
http://www.star.net.uk
________________________________________________________________________

Current Thread