xsl-list
[Top] [All Lists]

RE: xsl:variable

2004-07-22 08:37:35
This is a very frequently-asked question. In short, you can't re-assign the 
value of a variable once it has been declared. Not no way, not no how, so don't 
waste any more time looking for a way to do it.

As to scope, a variable goes out of scope when the processor exits template in which 
it was declared. So your answer is to declare the variable at the top level, inside 
the <xsl:stylesheet> element.

These matters are usually resolved by passing values into a recursive template, picking up 
its value via <xsl:param>, defining a new variable inside the template using the 
value of the parameter, and passing it along to the next iteration of the template via 
<xsl:with-param>.
--
Charles Knell
cknell(_at_)onebox(_dot_)com - email



-----Original Message-----
From:     Evan Wellens <evanw(_at_)videobankdigital(_dot_)com>
Sent:     Thu, 22 Jul 2004 11:11:21 -0400
To:       xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject:  [xsl] xsl:variable

Hi

Hopefully I'm just missing something silly here. I need to declare a variable that will be used globally and possibly modify if a condition occurs. Yet I cannot discern the syntax to do so , any attempt seems to re-declare the variable.



The intent here is to increment the value pages if the condition is true. If I declare a new variable within the If to hold the value it will go out of scope which doesn't help me.

Ie.
Thanks in advance for any ideas.

<xsl:variable name="pages" select="( $totalitems - $leftover ) div $pagesize "/>
<xsl:if test="leftover > 0 ">
        <xsl:variable name="$pages" select="$pages  =$pages +1"/>
</xsl:if>





--+------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--+--





<Prev in Thread] Current Thread [Next in Thread>