|
[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: template match on attribute, copy but change value
> Hi,
> I'm attempting to find a single attribute and change it's value. I
> thought this should be simple, but it just doesn't seem to be working.
> Looking at the Rec it says that xsl:copy is not allowed to copy the
> attribute and change it's value (what it looks like in the archives that
I
> found as well). So my question is, can I use the identity transform,
then
> have a template matching a specific attribute and copy the attribute to
the
> result, but change it's value?
>
> XML File:
> <test>
> <Element myAtt="test">
> <child/>
> </Element>
> </test>
>
> XSL File:
> <xsl:stylesheet version="1.0"
> xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
>
> <xsl:template match="/">
> <xsl:apply-templates select="*"/>
> </xsl:template>
>
> <xsl:template match="@myAtt">
> <xsl:copy> <!-- this is ignored and will not let me change the value
-->
> <xsl:value-of select="'hi there'"/>
> </xsl:copy>
> </xsl:template>
xsl:copy makes a shallow copy of a node, and, by definition, a copy is
identical to the original. Instead, use the xsl:attribute instruction to
create a new attribute with the same name, but with the new value:
<xsl:template match="@myAtt">
<xsl:attribute name="myAtt">hi there</xsl:attribute>
</xsl:template>
Dave
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|

Cart








