Subject: Re: [xsl] XSLT 1 and grouping numbers by if the following number is current number + 1 and so on From: Michael Kay <mike@xxxxxxxxxxxx> Date: Mon, 24 Mar 2014 14:25:47 +0000 |
Use sibling recursion: <xsl:template match="a" mode="new-group"> <group> <xsl:apply-templates select="following-sibling::a[1][. = current()+1]" mode="same-group"/> </group> <xsl:apply-templates select="following-sibling::a[not(. = preceding-sibling::a+1)][1]" mode="new-group"/> </xsl:template> <xsl:template match="a" mode="same-group"> <xsl:apply-templates select="following-sibling::a[1][. = current()+1]" mode="same-group"/> </xsl:template> <xsl:template match="*[a]"> <xsl:apply-templates select="child::a[1]" mode="new-group"/> </xsl:template> Not tested. Michael Kay Saxonica On 24 Mar 2014, at 14:08, Mario Madunic <mario.madunic@xxxxxxxxxxxx> wrote: > (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. > > Thanks > > Mario Madunic | Software Developer | AeroInfo Systems, A Boeing Company | mario.madunic@xxxxxxxxxxxx | #200-13575 Commerce Parkway | Richmond, BC, V6V 2L1, Canada | www.aeroinfo.com | www.boeing.com
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] XSLT 1 and grouping numbe, Mario Madunic | Thread | Re: [xsl] XSLT 1 and grouping numbe, G. Ken Holman |
Re: [xsl] XSLT 1 and grouping numbe, David Carlisle | Date | Re: [xsl] XSLT 1 and grouping numbe, G. Ken Holman |
Month |