Subject: RE: Transforming elements into attributes
From: <Jarno.Elovirta@xxxxxxxxx>
Date: Fri, 30 Apr 2004 10:29:47 +0300
|
Hi,
> Is there a nice 'readable' way to transform elements into attributes?
>
> Currently, I need to copy and paste for each one.
>
> XSL:
>
> <xsl:template match="form">
> <form>
> <xsl:if test="@name">
You probably meant to say to test
<xsl:if test="name">
as you example source has no attributes.
> <xsl:attribute name="name">
> <xsl:value-of select="name"/>
> </xsl:attribute>
> </xsl:if>
> <xsl:if test="@action">
> <xsl:attribute name="action">
> <xsl:value-of select="action"/>
> </xsl:attribute>
> </xsl:if>
> <xsl:if test="@method">
> <xsl:attribute name="method">
> <xsl:value-of select="method"/>
> </xsl:attribute>
> </xsl:if>
> <xsl:apply-templates/>
> </form>
> </xsl:template>
<xsl:template match="form">
<xsl:copy>
<xsl:for-each select="name | action | method">
<xsl:attribute name="{name()}">
<xsl:value-of select="."/>
</xsl:attribute>
</xsl:for-each>
<xsl:apply-templates/>
</xsl:copy>
</xsl:template>
Cheers,
Jarno
|