Subject: Re: [xsl] XSLT 1 and grouping numbers by if the following number is current number + 1 and so on From: David Carlisle <davidc@xxxxxxxxx> Date: Mon, 24 Mar 2014 14:22:27 +0000 |
(using XSLT 1) Hi,
I would like to group numbers by if the following number is current number + 1 and so on.
Example:
<a>1</a> <a>3</a> <a>4</a> <a>5</a> <a>7</a> <a>9</a> <a>10</a>
<group><a>1</a></group> <group><a>3 <a>4</a> <a>5</a></group> <group><a>7</a></group> <group><a>9</a> <a>10</a></group>
Any insight will be appreciated.
<x> <a>1</a> <a>3</a> <a>4</a> <a>5</a> <a>7</a> <a>9</a> <a>10</a> </x>
<xsl:output indent="yes"/> <xsl:template match="x"> <xsl:for-each-group group-starting-with="a[ not(preceding-sibling::a) or not(number(.)=1+preceding-sibling::a[1])]" select="a"> <group> <xsl:copy-of select="current-group()"/> </group> </xsl:for-each-group> </xsl:template>
$ saxon9 numg.xml numg.xsl <?xml version="1.0" encoding="UTF-8"?> <group> <a>1</a> </group> <group> <a>3</a> <a>4</a> <a>5</a> </group> <group> <a>7</a> </group> <group> <a>9</a> <a>10</a> </group>
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] XSLT 1 and grouping numbers b, Mario Madunic | Thread | Re: [xsl] XSLT 1 and grouping numbe, David Carlisle |
[xsl] XSLT 1 and grouping numbers b, Mario Madunic | Date | Re: [xsl] XSLT 1 and grouping numbe, Michael Kay |
Month |