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 |