Subject: Re: Another (positional?) grouping problem
From: Rudolf P. Weinmann <rudolf.weinmann@xxxxxxxxxxxx>
Date: Fri, 20 Oct 2006 13:32:52 +0200
|
>The other way to achieve that would be to leave out the "except xxx", in
>which case the initial nodes would go in a group of their own, and you could
>eliminate that group with a test such as
>
><xsl:if test="current-group()[1][self::DATE]">
>
Michael, thanks again, this way I can avoid the use of preceding-sibling which
most probably results in a performance gain.
The stylesheet now looks as follows:
<xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/DOC">
<Trx>
<xsl:for-each-group select="*" group-starting-with="DATE">
<xsl:if test="current-group()[1][self::DATE]">
<Transaction>
<xsl:apply-templates select="current-group()"/>
</Transaction>
</xsl:if>
</xsl:for-each-group>
</Trx>
</xsl:template>
<xsl:template match="DATE">
<Date><xsl:value-of select="."/></Date>
</xsl:template>
<xsl:template match="VALUE_DATE">
<ValueDate><xsl:value-of select="."/></ValueDate>
</xsl:template>
<xsl:template match="TEXT">
<Text><xsl:value-of select="."/></Text>
</xsl:template>
<xsl:template match="AMOUNT">
<Amount><xsl:value-of select="."/></Amount>
</xsl:template>
<xsl:template match="BALANCE_NEW">
<NewBalance><xsl:value-of select="."/></NewBalance>
</xsl:template>
</xsl:stylesheet>
Rudolf Weinmann
|