[xsl] How to calculate attribute values with XSL ?

Subject: [xsl] How to calculate attribute values with XSL ?
From: stig.garberg@xxxxxxxxxx
Date: Tue, 8 Jan 2002 09:24:39 +0100

I'm working with working with XSL for HTML output.   A problem that has occured
several times is that I want to calculate the values of HTML attributes based on
input XML values, but I'm not able to find a sensible way to do it.

For instance if I want to change the background colour (bccolor attribute) of a
table row based on the XML tags <state> and <ack>, where (<state>on</state> and
<ack>off</ack>) shall give bgcolor="#ff0000", while  (<state>on</state> and
<ack>on</ack>) shall give bgcolor="#008000".

I can solve this by writing :
   <xsl:if test="state = 'on' and ack = 'off'">
      <tr bgcolor="#ff0000">table contents</tr>
   </if>
   <xsl:if test="state = 'on' and ack = 'on'">
      <tr bgcolor="#008000">table contents</tr>
   </if>

However, if there is a large table, it feels meaningless to write the table
contents multiple times.  Is there a better way of solving this problem by
calculating the attribute value directly?

/StiG



 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread