Subject: Re: [xsl] group-adjacent problem From: David Carlisle <davidc@xxxxxxxxx> Date: Tue, 16 Dec 2008 12:56:45 GMT |
> However, the stylesheet doesn't group and produces instead: well it did group <xsl:for-each-group select="*" group-adjacent="name()" > but then you immediately unwound the grouping <xsl:for-each select="current-group()"> you want to add the <sections> element once per group, not once per item in the group, so <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="xml" version="1.0" encoding="utf-8" indent="yes" /> <xsl:template match="/"> <xsl:apply-templates/> </xsl:template> <xsl:template match='*[sect]'> <xsl:for-each-group select="*" group-adjacent="name()" > <xsl:choose> <xsl:when test="current-grouping-key() = 'sect'"> <sections> <xsl:apply-templates select='current-group()' mode='sect'/> </sections> </xsl:when> <xsl:otherwise> <xsl:apply-templates select='current-group()'/> </xsl:otherwise> </xsl:choose> </xsl:for-each-group> </xsl:template> <xsl:template match='sect' mode='sect'> <xsl:apply-templates/> </xsl:template> <xsl:template match='*'> <xsl:copy> <xsl:copy-of select="@*"/> <xsl:apply-templates /> </xsl:copy> </xsl:template> </xsl:stylesheet> ________________________________________________________________________ The Numerical Algorithms Group Ltd is a company registered in England and Wales with company number 1249803. The registered office is: Wilkinson House, Jordan Hill Road, Oxford OX2 8DR, United Kingdom. This e-mail has been scanned for all viruses by Star. The service is powered by MessageLabs. ________________________________________________________________________
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] group-adjacent problem, Ruud Grosmann | Thread | Re: [xsl] group-adjacent problem, Ruud Grosmann |
[xsl] group-adjacent problem, Ruud Grosmann | Date | Re: [xsl] group-adjacent problem, Ruud Grosmann |
Month |