RE: [xsl] Changing an attribute wherever it may occur

Subject: RE: [xsl] Changing an attribute wherever it may occur
From: "Michael Kay" <mhkay@xxxxxxxxxxxx>
Date: Fri, 28 Sep 2001 08:55:57 +0100
>      Is there a way to change an attribute in any occurrence 
> in a given
> element, including children?  I have been able to do it 
> recursively, with a
> little knowledge of where the attributes might be, but is it 
> possible to do
> it all at once?  I want to assume that I don't know where the 
> attribute
> will be at.

If you base your stylesheet on the identity template rule

<xsl:template match="node()|@*">
  <xsl:copy>
  <xsl:apply-templates select="@*"/>
  <xsl:apply-templates/>
  </xsl:copy>
</xsl:template>

Then you can define any special processing in additional templates, e.g.

<xsl:template match="@fred">
  <xsl:attribute name="bill">
  <xsl:value-of select="."/>
  </xsl:attribute> 
</xsl:template>

Mike Kay

 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread