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(_at_)eztechgroup(_dot_)net> wrote:
Thank you Mukul for the help!
I have one problem. How handle the html h1, h2, h3 etc., coding. I would
like to close </h1> tag before start in another <h1> tag.
Example...
Input file
---------
<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>
I want.....
--------
<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>
.....
.....
.....
Thanks
Byomkesh
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--