[xsl] Copying nested tags and adding attributes

Subject: [xsl] Copying nested tags and adding attributes
From: <graeme.ludwig@xxxxxx>
Date: Tue, 30 Jan 2007 00:42:44 -0000
I'd like to combine elements of solutions 12 and 8 of Dave Pawson's XSL
copying FAQ (http://www.dpawson.co.uk/xsl/sect2/N1930.html).

Specifically, I would like to take the XML:

<description>See how <b>cans</b> are made into model cars, planes, bikes, etc.
at  <a href="http://www.tincanmodels.com/"; target="_self">Tin Can Models</a>.
</description>

and transform it into

See how <b>cans</b> are made into model cars, planes, bikes, etc. at  <a
href="http://www.tincanmodels.com/"; alt="Tin Can Models" target="_self">Tin
Can Models</a>.

i.e. I want to add an alt attribute to the hyperlink and set it to the text of
the link itself. The bold attribute should remain unchanged.

I know I can use

<xsl:template match="description">
  <xsl:copy-of select="node()"/>
</xsl:template>

to get the text out as per solution 12, but am unsure how to generate the
extra alt attribute for any <a> elements that occur within the text. I believe
I am using an XSLT 1.0 processor.

Any help appreciated.

Thanks,

Graeme.

Current Thread