Subject: RE: [xsl] conditional declaretion of a variable From: "Martinez, Brian" <brian.martinez@xxxxxxxxxxx> Date: Thu, 17 Apr 2003 10:24:06 -0600 |
> From: florian [mailto:csshsh@xxxxxxxxxxxxxxx] > Sent: Thursday, April 17, 2003 5:46 AM > Subject: [xsl] conditional declaretion of a variable > > hi! > > im wondering why something like this doesnt work: > > <xsl:variable name="field" select="@field" /> > > <xsl:choose> > <xsl:when test="@valueField"> > <xsl:variable name="valueField" select="@valueField" /> > </xsl:when> > <xsl:otherwise> > <xsl:variable name="valueField" select="@field" /> > </xsl:otherwise> > </xsl:choose> > > <xsl:value-of select="$field" /> The scope of an xsl:variable binding is its immediate parent element. So when you declare a variable inside an xsl:when (or xsl:if or xsl:for-each, etc.), the variable no longer exists once you exit the block where it's declared. What you want is: <xsl:variable name="valueField"> <xsl:choose> <xsl:when test="@valueField"> <xsl:value-of select="@valueField"/> </xsl:when> <xsl:otherwise> <xsl:value-of select="@field"/> </xsl:otherwise> </xsl:choose> </xsl:variable> This is a bit cumbersome (although easier to read), and creates the variable as an RTF, but another post in the thread gives a more efficient solution. hth, b. | brian martinez brian.martinez@xxxxxxxxxxx | | lead gui programmer 303.708.7248 | | cheap tickets, part of trip network fax 303.790.9350 | | 6436 s. racine cir. englewood, co 80111 | | cendant travel distribution services http://www.cheaptickets.com/ | XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] conditional declaretion o, David Carlisle | Thread | RE: [xsl] conditional declaretion o, Sundar Shanmugasunda |
Re: [xsl] conditional declaretion o, David Carlisle | Date | Re: [xsl] Calling Java Xalan inside, Gan Uesli Starling |
Month |