Tried the below but this does not copy across the attributes. The
problem I am having is that there seems many ways to skin this cat, but
I cannot get any of them to work, sigh. Could I have a go at restating
my problem. I want to change the text value of a node(depending on a
test) whilst retaining the attributes.
My Input looks like this
<player pword="843208">
<dates>
<yes ID="20030722" WE="Tu">A</yes>
<yes ID="20030729" WE="Tu">A</yes>
<yes ID="20030805" WE="Tu">A</yes>
<yes ID="20030809" WE="Sa">D</yes>
<yes ID="20030810" WE="Su">D</yes>
<yes ID="20030812" WE="Tu">D</yes>
<yes ID="20030819" WE="Tu">A</yes>
<yes ID="20030826" WE="Tu">A</yes>
</dates>
</player>
The Output needed is:
<player pword="843208">
<dates>
<yes ID="20030722" WE="Tu">A</yes>
<yes ID="20030729" WE="Tu">A</yes>
<yes ID="20030805" WE="Tu">A</yes>
<yes ID="20030809" WE="Sa">C</yes>
<yes ID="20030810" WE="Su">C</yes>
<yes ID="20030812" WE="Tu">C</yes>
<yes ID="20030819" WE="Tu">A</yes>
<yes ID="20030826" WE="Tu">A</yes>
</dates>
</player>
<xsl:template match="player/dates/yes">
<xsl:copy>
<xsl:choose>
<xsl:when test="ancestor::player/@pword=$pmkey">
<xsl:value-of select="$type"/>
</xsl:when>
<xsl:otherwise><xsl:value-of select="."/></xsl:otherwise>
</xsl:choose>
</xsl:copy>
</xsl:template>
<xsl:template match="player/dates/yes/@ID">
<xsl:copy>
<xsl:value-of select="."/>
</xsl:copy>
</xsl:template>
<xsl:template match="player/dates/yes/@WE">
<xsl:copy>
<xsl:value-of select="."/>
</xsl:copy>
</xsl:template>
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list