xsl-list
[Top] [All Lists]

Re: [xsl] Multiple for-each-group in a single template

2008-11-20 06:09:23


I am getting duplicate when use multiple for-each-group  
You didn't post a full stylesheet so we can't run it, not did you say
exactly what output you got, but it doiesn't seem surprisiing that if
you have multiple

        <xsl:for-each-group select="*"
selecting teh same set of elements multiple times then you get then
repeated in the output.

From what I can guess looking at your desired output you want to remove this

        <xsl:if test="p[(_at_)class='box']">

from the outside and just have a single for-each-group so that you only
get each output element once.

        <xsl:for-each-group select="*"
        group-adjacent="string(self::p/@class)"

Now your elements are grouped and inside there you can have a -single_ 
xsl:choose
deciding what to surround the group with

        <xsl:choose>
                                <xsl:when
test="self::p/@class[contains(.,'box')]">
        <box type="box"
page="{replace(preceding-sibling::p[(_at_)class='pageNumber'][1],'Page ','')}">
                                                <xsl:apply-templates
select="current-group()"/>
        </box>
                                </xsl:when>
        <xsl:when
test="self::p/@class[contains(.,'exercise')]">
                                        <exercise>
                                                <xsl:apply-templates
select="current-group()"/>
                                        </exercise>
                                </xsl:when>
        <xsl:otherwise>
                                        <xsl:apply-templates
select="current-group()"/>
                                </xsl:otherwise>
                        </xsl:choose>
                </xsl:for-each-group>


David

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

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--