This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re: xml to xml transform
- To: spozin at broadbase dot com
- Subject: Re: [xsl] xml to xml transform
- From: Jeni Tennison <mail at jenitennison dot com>
- Date: Tue, 16 Jan 2001 10:32:54 +0000
- CC: xsl-list at lists dot mulberrytech dot com
- Organization: Jeni Tennison Consulting Ltd
- References: <200101160354.f0G3s0a03328@skew.org>
- Reply-To: xsl-list at lists dot mulberrytech dot com
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