Subject: Re: Multiple for-each-group in a single template
From: "Vasu Chakkera" <vasucv@xxxxxxxxx>
Date: Thu, 20 Nov 2008 11:13:13 +0000
|
Good.
David has replied back with that assumption of input XML.
Vasu
On Thu, Nov 20, 2008 at 11:12 AM, V.Ramkumar
<v.ramkumar@xxxxxxxxxxxxxxxxxxxxxx> wrote:
> Well formed Input only I am using. Mistakes happened when I compose a
> mail(sample input)
>
> <body>
> <p class="heading-1">Heading 1</p>
> <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</p>
> <p>para 1</p>
> <p class="exercise">para 2</p>
> <p class="exercise">para 3</p>
> <p>para 4</p>
> </body>
>
>
> Regards,
> Ramkumar
>
> -----Original Message-----
> From: Vasu Chakkera [mailto:vasucv@xxxxxxxxx]
> Sent: Thursday, November 20, 2008 4:38 PM
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: Re: Multiple for-each-group in a single template
>
> Your XML is not wel formed. if you could send back the XML that is
> properly closes ( see the h1, h2, and p class= "heading.. ) is not
> closed.
> its hard to device a solution with out knowing the correct input.
>
> <body>
> <p class="heading-1">Heading 1</p>
> <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</p>
> <p>para 1</p>
> <p class="exercise">para 2</p>
> <p class="exercise">para 3</p>
> <p>para 4</p>
> </body>
>
> Vasu
>
>> 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:for-each-group select="*"
>> group-adjacent="string(self::p/@class[contains(.,'box')])">
>> <xsl:choose>
>> <xsl:when
>> test="self::p/@class[contains(.,'box')]">
>> <box>
>> <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: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>
>> ......like wise section and all
>>
>> </body>
>>
>> Regards,
>> Ramkumar
>>
>>
>
>
>
> --
> Vasu Chakkera
> Numerical Algorithms Group Ltd.
> Oxford
> www.vasucv.com
>
>
--
Vasu Chakkera
Numerical Algorithms Group Ltd.
Oxford
www.vasucv.com
|