Re: counter

Subject: Re: counter
From: Mike Brown <mike@xxxxxxxx>
Date: Wed, 21 Jun 2000 10:16:07 -0600 (MDT)
>  <xsl:template match="root">
>   <xsl:apply-templates select="item[position() mod $cntr = 1]"/>
>  </xsl:template>
>  <xsl:template match="item">
>   <xsl:for-each select=". | following-sibling::item[position() &lt; $cntr]">
>    Item <xsl:value-of select="."/>
>  </xsl:for-each>
>  </xsl:template>

I don't see why Mike Kay took the approach he did. If I understood the
problem, this xsl:for-each and following-sibling:: business doesn't seem
at all as efficient as:

<!-- when processing the root node, go process *all* item element children -->
<xsl:template match="root">
  <xsl:apply-templates select="item"/>

<!-- when processing an item element, do something -->
<xsl:template match="item">
   Item <xsl:value-of select="."/>
   <!-- if this item's position is evenly divisible by $cntr, follow it
    with a page break that is numbered (position divided by $cntr) -->
   <xsl:if test="position() mod $cntr = 0">
   -----page break #<xsl:value-of select="position() div $cntr"/>-----

   - Mike
Mike J. Brown, software engineer at         My XML/XSL resources: in Denver, Colorado, USA 

 XSL-List info and archive:

Current Thread