[xsl] match on attribute anywhere

Subject: [xsl] match on attribute anywhere
From: "Andrew Welch" <awelch@xxxxxxxxxxxxxxx>
Date: Wed, 13 Feb 2002 10:19:33 -0000
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


Current Thread