This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

How to calculate attribute values with XSL ?




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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]