This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
RE: comparing the valie of an attribute..
- To: xsl-list at lists dot mulberrytech dot com
- Subject: RE: [xsl] comparing the valie of an attribute..
- From: sara dot mitchell at ps dot ge dot com
- Date: Mon, 8 Jan 2001 19:26:31 -0500
- Reply-To: xsl-list at lists dot mulberrytech dot com
There are a couple of ways to do this (and more I'm sure).
You can use xsl:choose or simply use different templates.
Here's the multiple template way:
<xsl:template match="event[@type='debug']">
<!-- make background color gray -->
<td bgcolor="#dddddd">
...what ever your cell content should be here...
</td>
</xsl:template>
<xsl:template match="event[@type='error']">
<!-- make background color ref -->
<td bgcolor="#990000">
...what ever your cell content should be here...
</td>
</xsl:template>
Debug event elements will match the first template and have a
gray background while error events will match the second template
and have a red background (very dark in this case).
To use xsl:choose, you can do something like this:
<xsl:template match="event">
<!-- set variable based on the value of type attribute -->
<xsl:variable name="colortype">
<xsl:choose>
<xsl:when test="@type='error'">#990000</xsl:when>
<xsl:otherwise>#dddddd</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<td>
<!-- assign background color using variable -->
<xsl:attribute name="bgcolor"><xsl:value-of select="$colortype"/>
</xsl:attribute>
...what ever your cell content should be here...
</td>
</xsl:template>
<!-- make background color gray -->
<td bgcolor="#dddddd">
...what ever your cell content should be here...
</td>
</xsl:template>
Sara
> -----Original Message-----
> From: Eduardo Dominguez [mailto:edmz@emonterrey.com]
> Sent: Monday, January 08, 2001 1:22 PM
> To: xsl-list@lists.mulberrytech.com
> Subject: [xsl] comparing the valie of an attribute..
>
>
> Having a xml log file with the following format:
>
>
> <eventlog>
> <event time='0.00000' place='function' line='95' delta='0.0'
> type='debug'>Program started</event>
> <event time='0.00437' place='unknown' line='???' delta='0.00437'
> type='error'>Bad argument</event>
> <event time='0.00670' place='GetResourcesByType()' line='217'
> delta='0.00233' type='query'>SELECT DISTINCT defs.id_resource as
> resource_id, defs.vc_description as description, defs.vc_path as
> path,</event>
> </eventlog>
>
>
> as you can see, its just a list of events, thats all there is.
> I am learning xsl, so I decided to implement my debugging with it.
> I have my very basic xsl files that converts this data into
> an html table.
> What I am trying to do now, is put a row in diferent color depending
> on the type attribute.
> I tried with xsl:choose, but I just couldnt use the attribute value
> for comparison.
>
> Any help achieving this is appreciated...
>
> thanks for helping a newbie :)
>
>
>
> XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
>
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list