[xsl] problem with valid Qnames

Subject: [xsl] problem with valid Qnames
From: "Philippe LAPLANCHE" <philippe.laplanche@xxxxxxxxxxxx>
Date: Mon, 25 Jul 2005 11:26:05 +0200
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