[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
Re: [xsl] concatenate multiple attribute values and assign it to another attribute
Subject: Re: [xsl] concatenate multiple attribute values and assign it to another attribute
From: Abel Braaksma <abel.online@xxxxxxxxx>
Date: Thu, 29 Mar 2007 23:06:09 +0200
|
Abel Braaksma wrote:
<xsl:template match="@att1[last()] | @att2[last()]">
<xsl:value-of select="." />
</xsl:template>
Oops, I should correct myself here: this won't work of course, it is
always true... sorry 'bout that. Here's another go, that is easier, it
will output what you want (it would've been a one-liner in xslt 2.0):
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:template match="/">
<test>
<xsl:attribute name="att1">
<xsl:apply-templates select="//test" >
<xsl:with-param name="att" select="'att1'" />
</xsl:apply-templates>
</xsl:attribute>
<xsl:attribute name="att2">
<xsl:apply-templates select="//test" >
<xsl:with-param name="att" select="'att2'" />
</xsl:apply-templates>
</xsl:attribute>
</test>
</xsl:template>
<xsl:template match="test[last()]">
<xsl:param name="att" />
<xsl:value-of select="@*[local-name() = $att]"/>
</xsl:template>
<xsl:template match="test">
<xsl:param name="att" />
<xsl:value-of select="@*[local-name() = $att]"/>
<xsl:text>,</xsl:text>
</xsl:template>
</xsl:stylesheet>
|