Subject: Re: [xsl] xsl loop with variable From: "Vasu Chakkera" <vasucv@xxxxxxxxxxx> Date: Tue, 29 Oct 2002 10:32:13 -0000 |
Hello, Your Stylesheet is incorrect..It should actually not work for the reason that you have defined two variables of the same name within one template , which is an error.If you are using older version of XALAN then it would probably work and this is a bug XALAN. > I can't make "numMonth" variable update with the correct increment out of the "if" tag, so that "Num months:" show me the correct value (until >now only show '0', the original value). In XSLT you can not update a variable. once you have assigned a value to it,the variable has this value untill it goes out of scope. ><xsl:if test="not($lastMonth=substring(editionDate,4,2))"> ><xsl:variable name="numMonth" select="$numMonth+1"/> ></xsl:if> You cant access this variable outside the xsl:if .. it goes out of scope. I guess what you want to do is.. for-each listObject/object, If the given condition satisfies, then add 1 to the value of numMonth and store it in a variable. you may want to try the following to do what you want to do. <?xml version="1.0"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/"> <xsl:variable name="numMonth" select="1"/> <xsl:variable name="lastMonth" select="00"/> <xsl:for-each select="listObject/object"> <xsl:variable name="numMonth1"> <xsl:if test="not($lastMonth=substring(editionDate,4,2))"> <xsl:value-of select="$numMonth+position()"/> </xsl:if> </xsl:variable> <xsl:value-of select="$numMonth1"/> <xsl:variable name="lastMonth1" select="substring(editionDate,4,2)"/> <!--<xsl:value-of select="$lastMonth1"/> --> </xsl:for-each> </xsl:template> </xsl:stylesheet> If this is not what you want,please let us know and some one in the list would be able to help you. HTH Vasu ----- Original Message ----- From: "rit7esyahoo" <rit7es@xxxxxxxx> To: <xsl-list@xxxxxxxxxxxxxxxxxxxxxx> Sent: Tuesday, October 29, 2002 8:22 AM Subject: [xsl] xsl loop with variable > Hi all: > I have the next xsl code: > > <xsl:variable name="numMonth" select="0"/> > <xsl:variable name="lastMonth" select="00"/> > > <xsl:for-each select="listObject/object"> > > <xsl:if test="not($lastMonth=substring(editionDate,4,2))"> > <xsl:variable name="numMonth" select="$numMonth+1"/> > </xsl:if> > > Num months:<xsl:value-of select="$numMonth"/> > > <xsl:variable name="lastMonth" select="substring(editionDate,4,2)"/> > > </xsl:for-each> > > I can't make "numMonth" variable update with the correct increment out of the "if" tag, so that "Num months:" show me the correct value (until now only show '0', the original value). > How can i do that? Can anybody help me please? > > Thanks. > _______________________________________________________________ > Yahoo! Messenger > Nueva versión: Webcam, voz, y mucho más ¡Gratis! > Descárgalo ya desde http://messenger.yahoo.es > > > XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list > XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] xsl loop with variable, David Carlisle | Thread | RE: [xsl] xsl loop with variable, Michael Kay |
AW: [xsl] CSV instead of white-spac, Delaney Robin | Date | [xsl] newbie question, Madhavi Thottempudi |
Month |