Subject: RE: Can a named template return a node list?
From: "Matthieu Ricaud" <matthieu.ricaud@xxxxxxx>
Date: Thu, 16 Jun 2005 16:43:05 +0200
|
Hi John !
<xsl:value-of select="$somenode/@attr" /> is not correct i think, the select
attribute shall be wheter an variable name precede with or an Xpath
expression.
<xsl:copy-of select="/root/node1" /> will actually return the xml fragment
of node1, but when doing <xsl:value-of select=""/> you will get the value of
this fragment.
I'm not sure I really got what you mean by "return a reference to a node" ?
An idea (maybe) is to use the generate-id() Xpath function which gives you
an single id for each node ?
hope this help.
Matthieu
-----Message d'origine-----
De : John [mailto:john-xsl-list@xxxxxxxx]
Envoyi : jeudi 16 juin 2005 16:25
@ : xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Objet : Can a named template return a node list?
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
|