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

Re: Incrementing a Global variable

Subject: Re: Incrementing a Global variable
From: Mukul Gandhi <mukulw3@xxxxxxxxx>
Date: Wed, 27 Aug 2003 20:32:34 -0700 (PDT)
xsl variable counter
xsl:number still operates on the notion of *node
sets*. I was suggesting that if we can have a global
variable declared, can we increment its value anywhere
in the XSLT program. But this is not possible in XSLT
as this notion introduces side effects..

Regards,
Mukul

--- Bill Keese <billk@xxxxxxxxxxxxxxxxxxxx> wrote:
> Can't you use <xsl:number> to get what you want?  
> Maybe I didn't 
> understand something about the problem you were
> solving.
> 
> Bill
> 
> Mukul Gandhi wrote:
> 
> >The XSLs (by Jarno and by -- Americo) are
> brilliant..
> >I was trying to solve the problem, but could'nt
> come
> >up with the solution soon.. 
> >
> >Though the issue about incrementing the variables
> has
> >been discussed a lot on this list, I feel if there
> is
> >a feature where some sort of variable incrmenting
> is
> >possible in XSLT, it will save lot of programming
> >hours producing a trivial thing as generating
> serial
> >nos. I am not suggesting to deviate from the
> viewpoint
> >that XSLT should be a functional language. 
> >
> >But if lets say we are allowed to declare a global
> >variable and can increment it, it will make certain
> >tasks quite easy(like generating serial nos). Since
> >generating serial nos is a common requirement, IMHO
> >providing this capability in XSLT will help the
> user
> >community. Also if we can have looping constructs
> >which can iterate over number ranges for e.g.
> >
> >for (int i=0; i < n; i++) , it will facilitate
> >processing loops in a diffrent way. Presently
> for-each
> >loop iterate over *node sets*. I guess these things
> >might be added to XSLT without deviating from the
> >objective to keep XSLT as a functional language.
> >
> >The XSLT 2.0 spec is in draft stage. If
> appropriate,
> >these features can be thought to be added. Probably
> >more knowledgeable persons on this list -- M. Kay,
> >Dimitre, David Carlisle, Dave Pawson, Wendell,
> Jeni,
> >Jarno, Americo.. can comment on the appropriateness
> of
> >this idea ;)
> >
> >Regards,
> >Mukul
> >
> >
> >--- Jarno.Elovirta@xxxxxxxxx wrote:
> >  
> >
> >>Hi,
> >>
> >>    
> >>
> >>>Also i have Isolated Problem Page from  Actual
> >>>      
> >>>
> >>output
> >>    
> >>
> >>>which contains multiple pdf pages. This part is
> >>>conditionaly separated from other pdf pages (
> >>>      
> >>>
> >>which
> >>    
> >>
> >>>are
> >>>further grouped using Muenchian Method)
> >>>      
> >>>
> >>Could you integrage this approach to your
> >>stylesheets?
> >>
> >><?xml version="1.0"?>
> >><xsl:stylesheet version="1.0"
> >>xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
> >>  <xsl:output method="html"/>
> >>  <xsl:variable name="varRowLimit" select="15"/>
> >>  <xsl:variable name="Student_Count"
> >>select="count(Students/Student)"/>
> >>  <xsl:template match="Students">
> >>    <title></title>
> >>    <table>
> >>      <tbody>
> >>        <xsl:apply-templates select="Student[1]"/>
> >>      </tbody>
> >>    </table>
> >>  </xsl:template>
> >>  <xsl:template match="Student" name="Student">
> >>    <xsl:param name="counter" select="1"/>
> >>    <tr>
> >>      <td>
> >>        <xsl:value-of select="$counter"/>
> >>      </td>
> >>      <td>
> >>        <xsl:value-of select="Name"/>
> >>      </td>
> >>      <td>
> >>        <xsl:value-of select="TOption"/>
> >>      </td>
> >>    </tr>
> >>    <xsl:variable name="next"
> >>select="following-sibling::Student[1]"/>
> >>    <xsl:choose>
> >>      <xsl:when test="not($next)">
> >>        <tr>
> >>          <td>
> >>            <xsl:value-of select="$counter + 1"/>
> >>          </td>
> >>          <td>
> >>            <xsl:text/>Total = <xsl:value-of
> >>select="$Student_Count"/>
> >>          </td>
> >>          <td></td>
> >>        </tr>
> >>        <xsl:call-template name="empty">
> >>          <xsl:with-param name="counter"
> >>select="$counter + 2"/>
> >>          <xsl:with-param name="left"
> >>select="$varRowLimit - $Student_Count - 3"/>
> >>        </xsl:call-template>
> >>      </xsl:when>
> >>      <xsl:when test="TOption = $next/TOption">
> >>        <xsl:apply-templates select="$next">
> >>          <xsl:with-param name="counter"
> >>select="$counter + 1"/>
> >>        </xsl:apply-templates>
> >>      </xsl:when>
> >>      <xsl:otherwise>
> >>        <xsl:call-template name="empty">
> >>          <xsl:with-param name="counter"
> >>select="$counter + 1"/>
> >>        </xsl:call-template>
> >>        <xsl:apply-templates select="$next">
> >>          <xsl:with-param name="counter"
> >>select="$counter + 2"/>
> >>        </xsl:apply-templates>
> >>      </xsl:otherwise>
> >>    </xsl:choose>
> >>  </xsl:template>
> >>  <xsl:template name="empty">
> >>    <xsl:param name="counter" select="0"/>
> >>    <xsl:param name="left" select="1"/>
> >>    <xsl:if test="$left">
> >>      <tr>
> >>        <td>
> >>          <xsl:value-of select="$counter"/>
> >>        </td>
> >>        <td></td>
> >>        <td></td>
> >>      </tr>
> >>      <xsl:call-template name="empty">
> >>        <xsl:with-param name="counter"
> >>select="$counter + 1"/>
> >>        <xsl:with-param name="left" select="$left
> -
> >>1"/>
> >>      </xsl:call-template>
> >>    </xsl:if>
> >>  </xsl:template>
> >></xsl:stylesheet>
> >>
> >>Cheers,
> >>
> >>Jarno - Feindflug: Größenwahn (Life Cried Remix)
> >>
> >> XSL-List info and archive: 
> >>http://www.mulberrytech.com/xsl/xsl-list
> >>
> >>    
> >>
> >
> >
> >__________________________________
> >Do you Yahoo!?
> >Yahoo! SiteBuilder - Free, easy-to-use web site
> design software
> >http://sitebuilder.yahoo.com
> >
> > XSL-List info and archive: 
> http://www.mulberrytech.com/xsl/xsl-list
> >
> >
> >
> >  
> >
> 
> 
>  XSL-List info and archive: 
> http://www.mulberrytech.com/xsl/xsl-list
> 


__________________________________
Do you Yahoo!?
Yahoo! SiteBuilder - Free, easy-to-use web site design software
http://sitebuilder.yahoo.com

 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.