|
Subject: Re: [xsl] variable with node in xsl:choose From: Jeni Tennison <jeni@xxxxxxxxxxxxxxxx> Date: Tue, 23 Jul 2002 11:28:02 +0100 |
Hi Markus,
> I want to use a variable in a for:each... so it works fine:
>
> <xsl:variable name="anzrows" select="//user/nokeyuser/name"/>
> <xsl:for-each select="$anzrows">
>
> But I want the select in the variable choosen by a condition like this:
>
> <xsl:choose>
> <xsl:when test="$anznokeyuser > $anzkeyuser"><xsl:variable name="anzrows"
> select="//user/nokeyuser/name"/></xsl:when>
> <xsl:otherwise><xsl:variable name="anzrows"
> select="//user/keyuser/name"/></xsl:otherwise>
> </xsl:choose>
You have to use a bit of a trick to get this to work. You want to get
the //user/nokeyuser/name element(s) if $anznokeyuser is more than
$anzkeyuser, and //user/keyuser/name otherwise. The best way to do
this is to create a union of the //user/nokeyuser/name (if
$anznokeyuser > $anzkeyuser):
(//user/nokeyuser/name)[$anznokeyuser > $anzkeyuser]
and //user/nokeyuser/name (if $anznokeyuser <= $anzkeyuser):
(//user/keyuser/name)[not($anznokeyuser > $anzkeyuser)]
So use:
<xsl:variable name="anzrows"
select="(//user/nokeyuser/name)[$anznokeyuser > $anzkeyuser] |
(//user/keyuser/name)[not($anznokeyuser > $anzkeyuser)]"/>
<xsl:for-each select="$anzrows">
...
</xsl:for-each>
Cheers,
Jeni
---
Jeni Tennison
http://www.jenitennison.com/
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| [xsl] variable with node in xsl:cho, inchi2000 | Thread | RE: [xsl] variable with node in xsl, Michael Kay |
| RE: [xsl] variable with node in xsl, Jarno . Elovirta | Date | Re: [xsl] <xsl:if ... question, Vasu Chakkera |
| Month |