|
[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: variable with node in xsl:choose
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
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|

Cart








