Subject: Re: [xsl] xsl:for-each-group Problem From: "Andrew Welch" <andrew.j.welch@xxxxxxxxx> Date: Wed, 21 Nov 2007 13:22:42 +0000 |
On 21/11/2007, Byomokesh Sahoo <sahoo.byomokesh@xxxxxxxxx> wrote: > Hi All, > > I am facing xsl-for-each group problem in my Input xml file. Please > see below my Input file. > > XML File > ======== > > <researcher> > <title>Rethinking Foreign Policy</title> > <question>Approach be abandoned?</question> > <abstract>some Text</abstract> > <section>Section The Issues</section> > <para>some text</para> > <section>Background</section> > <para>some text</para> > </researcher> > > I need ouput > ============ > > <researcher> > <cover> > <title>Rethinking Foreign Policy</title> > <question>Approach be abandoned?</question> > <abstract>some Text</abstract> > </cover> > <section label="the.issues"> > <section>Section The Issues</section> > <para>some text</para> > </section> > <section label="Background"> > <section>Background</section> > <para>some text</para> > </section> > </researcher> Use: <xsl:template match="researcher"> <xsl:for-each-group select="*" group-starting-with="section"> <xsl:choose> <xsl:when test="current-group()[1][self::title]"> <cover> <xsl:copy-of select="current-group()"/> </cover> </xsl:when> <xsl:otherwise> <section label="{.[self::section]}"> <xsl:copy-of select="current-group()"/> </section> </xsl:otherwise> </xsl:choose> </xsl:for-each-group> </xsl:template> You'll need to sort out the label attribute to be how you want it, as its not obvious from your example output. cheers -- Andrew Welch http://andrewjwelch.com Kernow: http://kernowforsaxon.sf.net/
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] xsl:for-each-group Problem, Byomokesh Sahoo | Thread | Re: [xsl] xsl:for-each-group Proble, Florent Georges |
[xsl] xsl:for-each-group Problem, Byomokesh Sahoo | Date | Re: [xsl] Iterating recursivly on a, ML mail |
Month |