Simplest answer is to use XSLT 2.0 with
<xsl:for-each-group select="*" group-adjacent="node-name(.)">
<xsl:choose>
<xsl:when test="current-group[1] instance of element(aaa)">
<ol>
<xsl:copy-of select="current-group()"/>
</ol>
</xsl:when>
<xsl:otherwise>
<xsl:copy-of select="current-group()"/>
</
</
</
For XSLT 1.0 solutions, search under "XSLT positional grouping".
Michael Kay
http://www.saxonica.com/
-----Original Message-----
From: Paul Clarke [mailto:pclarke(_at_)rcpsolutions(_dot_)com]
Sent: 21 February 2006 07:02
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: [xsl] Grouping of irregular XML
Hi All,
I'm just coming back to XSLT after a long lay off doing other
things and am
struggling with grouping irregular xml content from a converter.
I have this as an input.
<body>
<aaa>
..
</aaa>
<aaa>
..
</aaa>
<bbb>
..
</bbb>
<aaa>
..
</aaa>
<aaa>
..
</aaa>
</body>
And I need to put the groups of <aaa> elements in a deeper structure
<body>
<ol>
<aaa>
..
</aaa>
<aaa>
..
</aaa>
</ol>
<bbb>
..
</bbb>
<ol>
<aaa>
..
</aaa>
<aaa>
..
</aaa>
</ol>
</body>
Should I be using xsl:key here or another method?
Thanks
Paul Clarke
--~------------------------------------------------------------------
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>
--~--
--~------------------------------------------------------------------
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>
--~--