|
[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] RE: xsl:if
You are declaring two different variables with the same name. The second
variable goes out of scope as soon as you exit the xsl:if instruction. So
all subsequent references are to the first variable.
XSLT 1.0 makes your construct illegal, but some XSLT 1.0 processors (notably
Xalan, IIRC) allow it. Unfortunately, the construct has been made legal in
XSLT 2.0. Saxon should give you a warning that the second variable
declaration is pointless, because it can never be referred to.
The way to do this (in 1.0) is
<xsl:variable name="currencyTmp">
<xsl:choose>
<xsl:when test="exp1 = ''">
<xsl:value-of select="exp2"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="exp1"/>
</
</
</
In 2.0 it's easier:
<xsl:variable name="currencyTmp"
select="if (exp1 = '') then exp2 else exp1"/>
Michael Kay
http://www.saxonica.com/
> -----Original Message-----
> From: Andreas Andersson [mailto:andreas@xxxxxxxxxxxxxx]
> Sent: 27 September 2004 08:38
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: xsl:if
>
> Hi!
>
> I'm trying to test if a variable is the empty string or not, I can't
> find out how to do it with xsl:if. Here is what I have:
>
> <xsl:variable name="currencyTmp" select="select_value_in_some_cell"/>
> <xsl:if test="$currencyTmp=''">
> <xsl:variable name="currencyTmp"
> select="select_value_in_some_other_cell"/>
> </xsl:if>
>
> I know that my selects work, but the ifs doesn't?
>
> Anyone know what I'm doing wrong?
>
> Thanks.
>
> --
> Andreas Andersson
> IT Dept.
> Travelstart Nordic
> andreas@xxxxxxxxxxxxxx
> http://www.travelstart.se
|
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








