|
Subject: Re: [xsl] Multiple for-each-group in a single template From: "Vasu Chakkera" <vasucv@xxxxxxxxx> Date: Thu, 20 Nov 2008 11:08:20 +0000 |
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</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>
Vasu
On Thu, Nov 20, 2008 at 10:55 AM, V.Ramkumar
<v.ramkumar@xxxxxxxxxxxxxxxxxxxxxx> wrote:
>
>
> Regards,
> Ramkumar
> Software - Digital Services Division,
> Macmillan India Ltd.- Chennai 600 018.
>
>
> -----Original Message-----
> From: V.Ramkumar [mailto:v.ramkumar@xxxxxxxxxxxxxxxxxxxxxx]
> Sent: Thursday, November 20, 2008 4:20 PM
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: [xsl] 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: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
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| RE: [xsl] Multiple for-each-group i, V.Ramkumar | Thread | RE: [xsl] Multiple for-each-group i, V.Ramkumar |
| RE: [xsl] Multiple for-each-group i, V.Ramkumar | Date | Re: [xsl] Multiple for-each-group i, David Carlisle |
| Month |