----- Original Message -----
From: "John" <john-xsl-list(_at_)jpw3(_dot_)com>
To: <xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com>
Sent: Thursday, October 21, 2004 8:39 PM
Subject: [xsl] how to store node in variable?
Sorry to trouble the list with this one which seems so simple and yet
somehow I am banging my head against the wall for hours and I can't even
think what to search for. The worst part is I think I've done this
before...
How do I store a reference to a node in a variable or what am I doing
wrong? Here is what I have (maybe oversimplified) :
<xsl:variable name="me">
<xsl:choose>
<xsl:when test="<some condition>">
<xsl:copy-of select=".." />
</xsl:when>
<xsl:otherwise>
<xsl:copy-of select="." />
</xsl:otherwise>
</xsl:choose>
</xsl:variable> <xsl:call-template name="<some template>">
<xsl:with-param name="myid" select="$me/@id" />
</xsl:call-template>
The with-param is always throwing an error, expression should result in a
node-set.
If I add msxsl:node-set around my selects in the variable definition I get
cannot convert result tree fragment to node-set.
Alternatively, is there any way to explicitly set the context node without
using for-each?
Again my apologies.
-John
In XSLT 1 I believe you need to covert $me to a node-set using an extension
function. In version 2 you can use the variable directly or simplify the
code to use an XPtah expression like "if <some condition> then . else .."
--
Joe