Re: [xsl] For-each-group groups elements before the first group-starting-with element

Subject: Re: [xsl] For-each-group groups elements before the first group-starting-with element
From: Peter Desjardins <peter.desjardins.us@xxxxxxxxx>
Date: Tue, 11 May 2010 22:14:19 -0400
Thanks to all for the help.

Peter

On Tue, May 11, 2010 at 6:51 AM, Mukul Gandhi <gandhi.mukul@xxxxxxxxx> wrote:
> Thanks, David.
>
> As per your suggestion, the following change in the stylesheet I
> posted, fixes the problem you've mentioned:
>
> <xsl:for-each-group select="body/*" group-starting-with="h1">
>    <xsl:if test="self::h1">
>        <section>
>            <xsl:apply-templates select="current-group()"/>
>         </section>
>    </xsl:if>
> </xsl:for-each-group>
>
> On Tue, May 11, 2010 at 1:54 PM, David Carlisle <davidc@xxxxxxxxx> wrote:
>> On 11/05/2010 05:10, Mukul Gandhi wrote:
>>>
>>>    <xsl:for-each-group select="body/*" group-starting-with="h1">
>>>                <xsl:if test="position()&gt; 1">
>>
>> That's not safe because if the first element _is_ an h1 you'll miss the
>> first headed group. As Michael showed you need to test the element node in
>> teh first group, either as Michael showed with apply templates, or
>> <xsl:when test="self::h1">.....
>> <xsl:otherwise>....
>>
>> David
>
>
>
> --
> Regards,
> Mukul Gandhi

Current Thread