This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

RE: !!!counters in XSL!!!


> can anyone please tell me whether you can have counters in 
> XSL? I mean I
> want to increment a variable each time I go into a certain 
> for-each loop.
> 

Hola a todos, Rosa:

Some time ago i've developed a way to do simple interations with no
recursivity, only valid for short numbers of iterations  useful for  i.e
months..

This can be easily modified to do a bunch of other things..

You can use a external generated document for big interations, but it's
not very performant, i think, 2 parses...

Perhaps somebody finds that useful..( at least it's usefull for me :)

My 0.02 ? ( nothing compared to the income i've got from the xsl-list :)

Saludos ,
Ignacio J. Ortega

PS.:( this adapted from my code, i've not tested it , sorry if it
contains any errors )

8<--------------------------------------------------------------------
<xsl:stylesheet version="1.0" 
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
    xmlns:d="data"
>
<xsl:output method="text" indent="no" encoding="ISO-8859-1" />
  <!-- data for the transform -->
  <!-- adding d:item elemnts varies the counter -->
  <!-- you can use the index value for something -->
  <d:counter>
    <d:item>1</d:item>
    <d:item>2</d:item>
    <d:item>3</d:item>
    <d:item>4</d:item>
  </d:counter>
  <xsl:template match="/">
    <fourtimesoriginaltree>
    <xsl:variable name="backptr" select="."/>
    <xsl:for-each select="document('')//d:counter/d:item">
        <!--- Output some elements or do some iterative work -->
        <!-- use backptr for the original context tree       -->
        <!-- the example copies the source tree 4 times to the output
tree -->
        <originaltree copy="{.}">
            <xsl:copy-of select="$backptr"/>
        </originaltree>    
    </xsl:for-each>
    </fourtimesoriginaltree>
  </xsl:template>  
</xsl:stylesheet>
8<--------------------------------------------------------------------

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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]