This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re: Regrouping XML Data
- From: "J.Pietschmann" <j3322ptm at yahoo dot de>
- To: xsl-list at lists dot mulberrytech dot com
- Date: Fri, 12 Jul 2002 02:37:13 +0200
- Subject: Re: [xsl] Regrouping XML Data
- References: <3D2E1BF0.7BA0B2F5@comcen.com.au>
- Reply-to: xsl-list at lists dot mulberrytech dot com
Lotus Soda wrote:
Dear Friends
I have the following XML data
<row>
<col>
<data>
Surveyor
</data>
<data>
Excavation
</data>
<data>
Plumber
</data>
</col>
<col>
<data>
11/02/2000
</data>
<data>
15/02/2000
</data>
<data>
11/03/2000
</data>
</col>
</row>
I am having difficulty transforming this into:
<row>
<col>
<data>
Surveyor
</data>
<data>
11/02/2000
</data>
</col>
<col>
<data>
Excavation
</data>
<data>
15/02/2000
</data>
</col>
<col>
<data>
Plumber
</data>
<data>
11/03/2000
</data>
</col>
</row>
Each <row> has a fixed number of <col>
Each <col> has one set of <data> (this set is variable)
The <data> sets are equal for all <col> in each <row>
Any help is appreciated
That's table transposition, I think:
<xsl:template match="row">
<row>
<xsl:for-each select="col[1]/data">
<xsl:variable name="nr" select="position()"/>
<col>
<xsl:for-each select="../../col">
<xsl:copy-of select="data[$nr]"/>
</xsl:for-each>
</col>
</xsl:for-each>
</row>
</xsl:template>
Beware, almost untested.
J.Pietschmann
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list