[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: [XSLT2] Some common, generic grouping problems
On 6/30/06, David Carlisle <davidc@xxxxxxxxx> wrote:
This one solves the first one: <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output indent="yes"/> <xsl:template match="root"> <root> <xsl:for-each-group select="*" group-starting-with="*[@color='dark-red']"> <xsl:choose> <xsl:when test="self::*[@color='dark-red']"> <xsl:for-each-group select="current-group()" group-ending-with="*[@color='light-red']"> <xsl:choose> <xsl:when test="current-group()[last()][self::*[@color='light-red']]"> <red> <xsl:copy-of select="current-group()"/> </red> </xsl:when> <xsl:otherwise> <xsl:copy-of select="."/> </xsl:otherwise> </xsl:choose> </xsl:for-each-group> </xsl:when> <xsl:otherwise> <xsl:copy-of select="."/> </xsl:otherwise> </xsl:choose> </xsl:for-each-group> </root> </xsl:template> </xsl:stylesheet> A pair of nested for-each-groups, gives this result: <root> <arbitrary/> <red> <elem color="dark-red"/> <elem color="red"/> <arbitrary color="none"/> <elem color="red"/> <elem color="light-red"/> </red> <arbitrary/> </root> cheers andrew
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|