[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
|