Subject:creating an element with a dynamic name Author:Wolfgang Baeck Date:29 Dec 2005 01:25 PM
I'm drawing a blank on how to create (output method xml!) an element in the output document that has a dynamic name such as:
<xsl:element name="name()">
...
</xsl:element>
I'm trying to create an xslt that transforms attribute centric into element centric. Perhaps there is a much better way than:
<xsl:template match="@*">
<xsl:element name='name()'>
<xsl:value-of select="."/>
... down the tree ...
</xsl:element>
</xsl:template>
Subject:creating an element with a dynamic name Author:Minollo I. Date:29 Dec 2005 03:05 PM
I think you are on the right track; you just forgot using curly brackets around name(); this XSLT should do something similar to what you are trying to do:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="*">
<xsl:element name="{name()}">
<xsl:apply-templates select="@*"/>
<xsl:apply-templates/>
</xsl:element>
</xsl:template>
<xsl:template match="@*">
<xsl:element name="{name()}">
<xsl:value-of select="."/>
</xsl:element>
</xsl:template>
</xsl:stylesheet>