xsl-list
[Top] [All Lists]

Re: 'xsl:variable' as dynamic select for 'xsl:for-each'...

2003-11-17 07:07:47
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



<Prev in Thread] Current Thread [Next in Thread>