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

Subject: [xsl] Can a named template return a node list?
From: John <john-xsl-list@xxxxxxxx>
Date: Thu, 16 Jun 2005 07:24:32 -0700
Sorry in advance for my terminology. Is it possible for a named template to return a node list? Here is some simplified XML with which I have been experimenting:

<root>
  <node1 attr="node1attrval">
    <node1a>node1atext</node1a>
  </node1>
  <node2 attr="node2attrval">
    <node2a>node2atext</node2a>
  </node2>
</root>

And the XSL I have been trying:

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

<xsl:template name="sometemplate">
  <xsl:copy-of select="/root/node1" />
</xsl:template>

The reference to $somenode/@attr gives an error. I think the problem is with copy-of - I want it to return a reference to a node, but it seems to return the value of the node. Is there some other function or approach I should try? I have tried value-of and copy, and I am hoping to stay away from XSL extensions if possible. I cannot use XSL 2.

Thanks,

-John

Current Thread