[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

RE: xsl:if

Subject: RE: xsl:if
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Mon, 27 Sep 2004 09:18:25 +0100
xsl when 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

Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.