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: counting?


> I would like to count the number of
> iterations in a for-each loop (used to
> create a table) and add in a new tag
> (to create a new table) every 15th iteration.
> 
> How do I go about counting and checking
> for the 15th iteration in XSL?

You don't.

XSLT doesn't create tags, it creates element nodes in a tree. You can't
create the start tag now and the end tag 15 iterations later, creating an
element node on the tree is an atomic operation.

To solve this and other grouping problems, you need two nested loops. The
outer loop constructs the new element, the inner loop processes the 15 input
elements to put inside it.

Typically:

<xsl:for-each select="item[position() mod 15 = 1]">
<table>
  <xsl:for-each select=". | following-sibling::item[position() &lt; 15]">
     <tr>
       <!-- process the item -->
     </tr>
  </xsl:for-each>
</table>
</xsl:for-each>

Mike Kay
     


 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]