|
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 |