RE: [xsl] create element

Subject: RE: [xsl] create element
From: Jarno.Elovirta@xxxxxxxxx
Date: Thu, 2 May 2002 11:21:21 +0300
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


Current Thread