[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

RE: [xsl] problem with valid Qnames


Subject: RE: [xsl] problem with valid Qnames
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Mon, 25 Jul 2005 10:36:17 +0100

You want

<xsl:element name="{$name}">

Michael Kay
http://www.saxonica.com/ 

> -----Original Message-----
> From: Philippe LAPLANCHE [mailto:philippe.laplanche@xxxxxxxxxxxx] 
> Sent: 25 July 2005 10:26
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: [xsl] problem with valid Qnames
> 
> 
> Hello
> 
> I'd like to transform this:
> 
> <?xml version="1.0" encoding="UTF-8"?>
> <csvFile>
> 	<line>
> 		<value>Nom</value>
> 		<value>Prenom</value>
> 		<value>Sexe</value>
> 	</line>
> 	<line>
> 		<value>Burke</value>
> 		<value>Eric</value>
> 		<value>H</value>
> 	</line>
> 	<line>
> 		<value>Burke</value>
> 		<value>Jennifer</value>
> 		<value>F</value>
> 	</line>
> 	<line>
> 		<value>Burke</value>
> 		<value>Aidan</value>
> 		<value>H</value>
> 	</line>
> </csvFile>
> 
> Into this :
> 
> <data>
> 	<line>
> 		<nom>Burke</nom>
> 		<prenom>Eric</nom>
> 		<sexe>H</nom>
> 	</line>
> 	<line>
> 	      <nom>Burke</nom>
> 		<prenom>Jenifer
> 	  	...
> 	</line>
> ...
> 
> I'm using this stylesheet :
> 
> <?xml version="1.0" encoding="UTF-8"?>
> <xsl:stylesheet version="1.0"
> xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
> 
>     <xsl:template match="/">
> 		<data>
> 			<xsl:apply-templates select="*"/>
> 		</data>		
>     </xsl:template>
>     
> 	<xsl:template match="line">
> 		<xsl:if test="not(position()=1)">
> 			<line>	
> 				<xsl:apply-templates select="value"/>
> 			</line>
> 		</xsl:if>
> 	</xsl:template>
> 	
> 	<xsl:template match="value">
> 		<xsl:variable name="pos" select="position()"/>
> 		<xsl:variable name="name"
> select="//line[1]/value[$pos]"/>
> 		<xsl:element name="$name"><xsl:value-of
> select="."/></xsl:element>
> 	</xsl:template>
> </xsl:stylesheet>
> 
> But I get an error because $name is not a valid Qname
> 
> How do I solve this?
> 
> Philippe


Current Thread