you must be thinking in Perl. find an algorithm that does what you need
without having to generate the variable names during execution. there might
be a way to do what you asked, but I'm not an expert and don't think there
is a way.
----- Original Message -----
From: "Ollie Lord" <ol(_at_)pts(_dot_)com>
To: <XSL-List(_at_)lists(_dot_)mulberrytech(_dot_)com>
Sent: Monday, November 17, 2003 7:15 AM
Subject: [xsl] 'xsl:variable' as dynamic select for 'xsl:for-each'...
Hi all,
I'm having problems creating an xsl:variable that I can use as the node
set
for an 'xsl:for-each' tag.
Basiacally...
<xsl:variable name="selectclause" select=" some nodes "/>
<xsl:for-each select="$selectclause">
... my code...
</xsl:for-each>
My problem is that the select statement of the variable needs to be
dynamic. Such as... (and I know this doesn't work.. )
<xsl:choose>
<xsl:when test="$clientid = ''">
<xsl:variable name="selectclause" select = "//client"/>
</xsl:when>
<xsl:otherwise>
<xsl:variable name="selectclause" select = "//client[$clientid]"/>
</xsl:otherwise>
</xsl:choose>
<xsl:for-each select="$selectclause">
my code
</xsl:for-each>
It doesn't work because the contents of the variable 'selectclause' cannot
be changed.
Of course, this doesn't work either...
<xsl:variable name="selectclause">
<xsl:choose>
<xsl:when test="$clientid = ''">"//client"</xsl:when>
<xsl:otherwise>"//client[$clientid]"</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:for-each select="$selectclause">
my code
</xsl:for-each>
... because the content of $selectclause isn't a node set.
Does anyone have any advice for me?? Any help would be very much
appreciated.
Thanks,
Ollie Lord.
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list