This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
RE: create element
- From: Jarno dot Elovirta at nokia dot com
- To: <xsl-list at lists dot mulberrytech dot com>
- Date: Thu, 2 May 2002 11:21:21 +0300
- Subject: RE: [xsl] create element
- Reply-to: xsl-list at lists dot mulberrytech dot com
Heppa,
> In my input xml file, I have this structure :
> <table>
> <row>
> <cell>
> Name
> </cell>
> <cell>
> Hassan
> </cell>
> </row>
> <row>
> <cell>
> Age
> </cell>
> <cell>
> 23 year
> </cell>
> </row>
> <row>
> <cell>
> City
> </cell>
> <cell>
> Bordeaux
> </cell>
> </row>
> <row>
> <cell>
> Country
> </cell>
> <cell>
> France
> </cell>
> </row>
> </table>
>
> I want to have an output file with this structure:
>
> <rule name="Name" value="Hassan">
> <Age>
> 23 year
> </Age>
> <City>
> Bordeaux
> </City>
> <Country>
> France
> </Country>
> </rule>
E.g.
<xsl:output indent="yes"/>
<xsl:template match="table">
<rule name="{normalize-space(row[1]/cell[1])}" value="{normalize-space(row[1]/cell[2])}">
<xsl:for-each select="row[position() != 1]">
<xsl:element name="{normalize-space(cell[1])}">
<xsl:value-of select="normalize-space(cell[2])" />
</xsl:element>
</xsl:for-each>
</rule>
</xsl:template>
The indentation isn't exactly the same, but shouldnt' be too hard to adjust manually.
Cheers,
Santtu
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list