RE: [xsl] match on attribute anywhere

Subject: RE: [xsl] 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: [xsl] 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


Current Thread