|
Subject: [xsl] How efficient is DVC? - A grouping example - FIXED From: "Robbert van Dalen" <juicer@xxxxxxxxx> Date: Sat, 22 Mar 2003 22:47:02 +0100 |
This is an update on the previous post. I didn't check if the first two examples
worked correctly (I wrote them out of the top of my head). It should now be
fixed. Sorry for the inconvenience!
Cheers,
RvD
__________________________________________
The first example:
<xsl:template match="cities">
<xsl:variable name="sorted">
<xsl:for-each select="./city">
<xsl:sort select="@country"/>
<xsl:copy-of select="."/>
</xsl:for-each>
</xsl:variable>
<xsl:variable name="sorted-tree-fragment" select="xalan:nodeset($sorted)/*"/>
<!-- Gets the groups -->
<xsl:variable name="groups">
<xsl:apply-templates select="$sorted-tree-fragment"/>
</xsl:variable>
<!-- Iterate through all the groups -->
<xsl:for-each select="xalan:nodeset($groups)/*">
<xsl:variable name="country" select="@id"/>
<xsl:copy>
<xsl:copy-of select="@*"/>
<!-- Copy the nodes with the same country -->
<xsl:copy-of select="$sorted-tree-fragment[@country = $country]"/>
</xsl:copy>
</xsl:for-each>
</xsl:template>
____________________________
The second example:
<xsl:template match="city">
<xsl:variable name="preceding" select="./preceding-sibling::*[1]"/>
<xsl:if test="not(./@country = $preceding/@country)">
<group id="{./@country}"/>
</xsl:if>
</xsl:template>
<xsl:template match="city">
<xsl:variable name="preceding" select="./preceding-sibling::*[1]"/>
<xsl:choose>
<xsl:when test="not(./@country = $preceding/@country)">
<group id2="{./@country}">
<xsl:copy-of select="."/>
<xsl:apply-templates select="./following-sibling::*[1]"/>
</group>
</xsl:when>
<xsl:otherwise>
<xsl:copy-of select="."/>
<xsl:apply-templates select="./following-sibling::*[1]"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template match="group">
<xsl:copy>
<xsl:copy-of select="@*"/>
<xsl:copy-of select="./city"/>
</xsl:copy>
<xsl:apply-templates select="./group"/>
</xsl:template>
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| Re: [xsl] Re: How efficient is DVC?, Robbert van Dalen | Thread | Re: [xsl] How efficient is DVC? - A, Mike Brown |
| [xsl] How efficient is DVC? - A gro, Robbert van Dalen | Date | Re: [xsl] How efficient is DVC? - A, David Carlisle |
| Month |