[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Multiple for-each-group in a single template
Hi List, I am getting duplicate when use multiple for-each-group in a single template (based on single parent). Please find mistakes in my xslt. Input: <body> <p class="heading-1">Heading 1</h1> <p>para 1</p> <p class="box">para 2</p> <p class="box">para 3</p> <p>para 4</p> <p class="heading-2">Heading 2</h2> <p>para 1</p> <p class="exercise">para 2</p> <p class="exercise">para 3</p> <p>para 4</p> </body> Exp.Output: <body> <section title="Heading-1"> <p>para 1</p> <box> <p>para 2</p> <p>para 3</p> </box> <p>para 4</p> </section> <section title="Heading-2"> <p>para 1</p> <excecise> <p>para 2</p> <p>para 3</p> </excecise> <p>para 4</p> </section> </body> My XSLT: (sample) <xsl:template match="body"> <body> <xsl:if test="p[@class='box']"> <xsl:for-each-group select="*" group-adjacent="string(self::p/@class[contains(.,'box')])"> <xsl:choose> <xsl:when test="self::p/@class[contains(.,'box')]"> <box type="box" page="{replace(preceding-sibling::p[@class='pageNumber'][1],'Page ','')}"> <xsl:apply-templates select="current-group()"/> </box> </xsl:when> <xsl:otherwise> <xsl:apply-templates select="current-group()"/> </xsl:otherwise> </xsl:choose> </xsl:for-each-group> </xsl:if> <xsl:if test="p[@class='exercise']"> <xsl:for-each-group select="*" group-adjacent="string(self::p/@class[contains(.,'exercise')])"> <xsl:choose> <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> </xsl:if> </body> Regards, Ramkumar
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|