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>
--+--