|
Subject: Re: [xsl] How Handle Html Heading Tag using XSL From: "Mukul Gandhi" <gandhi.mukul@xxxxxxxxx> Date: Wed, 28 Jun 2006 10:28:40 +0530 |
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: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>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
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
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| RE: [xsl] How Handle Html Heading T, Michael Kay | Thread | RE: [xsl] How count the Table cell , Michael Kay |
| Re: [xsl] Filtering problem, Mukul Gandhi | Date | [xsl] RE: xsl-list Digest 28 Jun 20, Jordan Soet |
| Month |