[Home] [By Thread] [By Date] [Recent Entries]
Hi Byomkesh, Since you are using XSLT 2.0, you must use xsl:for-each-group instruction (as Michael explained). Following is the solution: XML file: <html> <h1>Heading 1.</h1> <p>Some text here..</p> <h2>Heading 2...</h2> <p>Some text here....</p> <h3>Heading 3.....</h3> <p>Some text here......</p> <h1>Heading 1.......</h1> <p>Some text here........</p> </html> Stylesheet: <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0"> <xsl:output method="xml" indent="yes" /> <xsl:template match="/html">
<document>
<xsl:for-each-group select="*" group-starting-with="h1">
<section1>
<title><xsl:value-of select="current-group()[1]" /></title>
<p><xsl:value-of select="current-group()[2]" /></p>
<xsl:for-each-group select="current-group()[position()
> 2]" group-starting-with="h2">
<section2>
<title><xsl:value-of select="current-group()[1]"
/></title>
<p><xsl:value-of select="current-group()[2]" /></p>
<xsl:for-each-group
select="current-group()[position() > 2]" group-starting-with="h3">
<section3>
<title><xsl:value-of
select="current-group()[1]" /></title>
<p><xsl:value-of select="current-group()[2]" /></p>
</section3>
</xsl:for-each-group>
</section2>
</xsl:for-each-group>
</section1>
</xsl:for-each-group>
</document>
</xsl:template></xsl:stylesheet> Output:
<?xml version="1.0" encoding="UTF-8"?>
<document>
<section1>
<title>Heading 1.</title>
<p>Some text here..</p>
<section2>
<title>Heading 2...</title>
<p>Some text here....</p>
<section3>
<title>Heading 3.....</title>
<p>Some text here......</p>
</section3>
</section2>
</section1>
<section1>
<title>Heading 1.......</title>
<p>Some text here........</p>
</section1>
</document>Regards, Mukul On 6/27/06, Byomkesh <bkesh@xxxxxxxxxxxxxxx> wrote: Thank you Mukul for the help!
|

Cart



