This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

RE: create element


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]