J. S. Rawat schrieb:
Hi List,
I am doing html to xml conversion and we need grouping in this regard.
Hi Rawat,
looks like this has remained unanswered.
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.
Michael Ludwig
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>
</xsl:stylesheet>
--~------------------------------------------------------------------
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>
--~--