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>
--+--