xsl-list
[Top] [All Lists]

RE: Setting background colour according to contents of node

2004-09-19 01:18:23
Use

<xsl:attribute name="background-color">
  <xsl:apply-templates select="BREAK_3" mode="get-colour"/>
</xsl:attribute>

then

<xsl:template match="* mode="get-colour">
  <xsl:choose>
    <xsl:when test="FIELD_134='Y' or ...>
etc.
</xsl:template>

In other words, but the conditional code in the piece that generates the
attribute that varies, not in the piece that generates its containing
element.

Michael Kay


-----Original Message-----
From: Sean & Helen [mailto:scarlson65(_at_)shaw(_dot_)ca] 
Sent: 19 September 2004 06:29
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: [xsl] Setting background colour according to contents of node

Hi all,
I was trying to set a background colour by setting a variable 
after checking
the contents of a node. I realized that this would not work 
unless I used
LOTS of variables since the value of a variable cannot be 
updated once set.
Does anyone have an easier way to set a colour based on data? 
The only other
way I can think of is to use an <xsl:choose> but then I have 
to repeat my
whole table cell code twice (which really adds up for large reports).

This is what I currently have (which is pretty awful):

<xsl:choose>
<xsl:when test="BREAK_3/FIELD_134[1]=Y or BREAK_3/FIELD_135[1]='F'">
     <fo:table-cell background-color="#9DE1DF"> .... contents 
of the cell
.... </fo:table-cell>
</xsl:when>

<xsl:otherwise>
     <fo:table-cell background-color="white">...exactly the 
same code for
the contents...</fo:table-cell>
</xsl:otherwise>
</xsl:choose>

TIA for listening to my silly question,
Helen.


--+------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: 
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--+--




<Prev in Thread] Current Thread [Next in Thread>