Re: [xsl] Numbering new nodes using consecutive integers

Subject: Re: [xsl] Numbering new nodes using consecutive integers
From: David Carlisle <davidc@xxxxxxxxx>
Date: Fri, 27 Mar 2009 21:58:30 GMT
me> oops that was wrong (thanks to Ken for pointing that out)

perhaps this is less wrong.


<xsl:stylesheet version="2.0"
   xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>

   <xsl:output indent="yes" encoding="iso-8859-1"/>
   <xsl:strip-space elements="*"/>

   <!-- How many M elements per G2 element? -->
   <xsl:variable name="M-per-G2" select="2"/>


   <xsl:template match="Groups">
     <xsl:copy>
       <xsl:apply-templates
         select="G1/M[ position() mod $M-per-G2 = 1 ]" mode="group"/>
     </xsl:copy>
   </xsl:template>

   <xsl:template match="M" mode="group">
     <G2 no="{position()}"><!-- I want this GR to be numbered sequentially. -->
       <xsl:copy-of select="
         . | following-sibling::M[position() &lt; $M-per-G2]"/>
     </G2>
   </xsl:template>

   <xsl:template match="@*|node()"><!-- copy template -->
     <xsl:copy><xsl:apply-templates select="@*|node()"/></xsl:copy>
   </xsl:template>

</xsl:stylesheet>


________________________________________________________________________
The Numerical Algorithms Group Ltd is a company registered in England
and Wales with company number 1249803. The registered office is:
Wilkinson House, Jordan Hill Road, Oxford OX2 8DR, United Kingdom.

This e-mail has been scanned for all viruses by Star. The service is
powered by MessageLabs. 
________________________________________________________________________

Current Thread