Subject: RE: match on attribute anywhere
From: Jeff Beadle <Jbeadle@xxxxxxxx>
Date: Wed, 13 Feb 2002 08:40:05 -0500
|
this works, however, it may be a bit clumsy:
<xsl:template match="@mark[.!='1']">
<xsl:apply-templates />
</xsl:template>
<xsl:template match="@mark[.='1']">
<span style="color:#FF0000">
<xsl:apply-templates />
</span>
</xsl:template>
-Jeff
-----Original Message-----
From: Andrew Welch [mailto:awelch@xxxxxxxxxxxxxxx]
Sent: Wednesday, February 13, 2002 5:20 AM
To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Subject: match on attribute anywhere
Hi all,
In my xml, if an element has an attribute 'mark=1' then it should be
highlighted. I can achieve it by putting a test on each template:
<xsl:template match="whatever">
<xsl:choose>
<xsl:when test="@mark='1'">
<span style="color:#FF0000">
<xsl:apply-templates/>
</span>
</xsl:when>
<xsl:otherwise>
<xsl:apply-templates/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
However, doing this for each template seems a bit overkill, I would like to
specify a general template like this:
<xsl:template match="@mark">
<span style="color:#FF0000">
<xsl:apply-templates select/>
</span>
</xsl:template>
and apply it using:
<xsl:apply-templates select="@mark|node()"/>
This currently doesnt work for me - is it the correct approach?
Cheers
andrew
===
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
|