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

RE: Variables

Subject: RE: Variables
From: Binerman <binerman@xxxxxxxxxxxxxxxxxxxxx>
Date: Thu, 13 Feb 2003 01:43:08 -0600
xslt check if variable set
Quoting Stevenson Ngila <Stevenson@xxxxxxxxxxxxxxxxxxxxxx>:

> What i want to acheve is:
> 
> if i have the following xml node i.e.
> 
> <><><><><<><><><><><<><><><><<><><><><><
> <names option1="john" option2="peter"/>
> <><><><><<><><><><><<><><><><<><><><><><
> 
> First of all check if the attribute "option1" exists(How do i do this?),
> it's not a must it will be there. And if it does,
> set the variable x = 400 - ( No.of option1 * 10 )
> 
> Given that the variable had been declared earlier.

I'm new to xsl myself.  The "given that the variable has been declared earlier"
part confuses me too.  But barring that requirement it would look something like
this.  Note that i sorta compensated for the part that confuses us by having x
default to the starting value of 400 when @option1 is not present.

If anyone knows the "real" way please enlighten. ;-)

Assuming the <names> is the current context node:

<xsl:variable name="x">
  <xsl:when test="./@option1">
    <xsl:value-of select="400 - (./@option1 * 10)"/>
  </xsl:when>
  <xsl:otherwise>
    <xsl:text>400</xsl:text>
  </xsl:otherwise>
</xsl:variable>

Additionally... i know that <xsl:text>400</xsl:text> works... but is this also
valid? or does select always reference a node-set somehow? :
<xsl:value-of select="400"/>

> -----Original Message-----
> From: owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> [mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx]On Behalf Of David
> Carlisle
> Sent: 12 February 2003 18:36
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: Re:  Variables
> 
> 
> 
>   How can i perform the following operation in xslt.
> 
>   <xsl:if test=@steve != 0>
> 	x= x + 1
>   </xsl:if>
> 
>   where x is a variable.
> 
> if x = x + 1 then 0 = 1 and the world would be inconsistent.
> this would be bad, so XSLT, like other declarative programing languages
> doesn't let you change the value of a variable once it is bound.
> 
> This is a FAQ.
> 
> If you said what you were trying to generate rather than which illegal
> operation you were trying to peform, someone could offer some further
> help.
> 
> David

-- 
Ryan T. Gallagher



 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


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.