Subject: Re: [xsl] Grouping: unordered lists from xml to html From: Michael Ludwig <mlu@xxxxxxxxxxxxx> Date: Thu, 23 Oct 2008 11:18:35 +0200 |
Hi List, I am doing html to xml conversion and we need grouping in this regard.
In XSLT 2.0, use xsl:for-each-group with group-adjacent as shown below. The application of the different types of xsl:for-each-group are very well explained in Michael Kay's XSLT 2.0 Reference.
XML <summary> <para bullet="1">This is paragraph 1</para> <para bullet="0">This is paragraph 2</para> <para bullet="1">This is paragraph 3</para> <para bullet="1">This is paragraph 4</para> </summary>
REQUIRED OUTPUT <ul> <li>This is paragraph 1</li> </ul> <p>This is paragraph 2</p> <ul> <li>This is paragraph 3</li> <li>This is paragraph 4</li> </ul>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="summary"> <html> <body> <xsl:for-each-group select="*" group-adjacent="@bullet"> <xsl:apply-templates select="."/> </xsl:for-each-group> </body> </html> </xsl:template>
<xsl:template match="para[ @bullet = 0 ]"> <xsl:for-each select="current-group()"> <p><xsl:value-of select="."/></p> </xsl:for-each> </xsl:template>
<xsl:template match="para[ @bullet = 1 ]"> <ul> <xsl:for-each select="current-group()"> <li><xsl:value-of select="."/></li> </xsl:for-each> </ul> </xsl:template>
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] Grouping: unordered lists fro, J. S. Rawat | Thread | Re: [xsl] Grouping: unordered lists, J. S. Rawat |
Re: [xsl] Content of Script element, Joyce Babu | Date | Re: [xsl] Content of Script element, Joyce Babu |
Month |