Subject: Re: xml to xml transform
From: Jeni Tennison <mail@xxxxxxxxxxxxxxxx>
Date: Tue, 16 Jan 2001 10:32:54 +0000
|
Hi Shimon,
Here's the Muenchian way (see http://www.jenitennison.com/grouping/):
very similar to the one Mike B. showed you, but uses keys to retrieve
the relevant 'row' elements and so will probably be more efficient if
you've got lots of rows.
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:output method="xml" indent="yes"/>
<xsl:key name="rows" match="row" use="@fld" />
<xsl:template match="rows">
<xsl:for-each select="row[count(.|key('rows', @fld)[1]) = 1]">
<xsl:element name="{@fld}">
<xsl:for-each select="key('rows', @fld)">
<xsl:element name="{@value}"/>
</xsl:for-each>
</xsl:element>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
I hope that helps,
Jeni
---
Jeni Tennison
http://www.jenitennison.com/
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
|