|
Subject: RE: [xsl] Problem setting variable in if statement From: "Michael Kay" <mhk@xxxxxxxxx> Date: Mon, 2 Feb 2004 20:23:33 -0000 |
>
> I am very new to xsl/xslt and have a basic problem. I am
> setting a style sheet color based on a condition. I'd like
> the color to be a variable value, like <xsl:variable
> name="statColor" select="#33cc33"> and set this variable in
> the if/choose condtion. Then recall it like <span
> style="color:{$statColor}"><xsl:value-of select="status"></span>
>
>
> I have it like this now, but want to simplfiy it:
>
> <xsl:choose>
> <xsl:when test="status='undelivered'"> <span
> style="color:#ff0000"> <xsl:value-of
> select="status"/></span> </xsl:when>
> <xsl:when test="status='inprogress'"> <span
> style="color:#33cc33"> <xsl:value-of
> select="status"/></span> </xsl:when>
> <xsl:when test="status='delivered'"> <span
> style="color:#33cc33"> <xsl:value-of
> select="status"/></span> </xsl:when>
> <xsl:when test="status='escalated'"> <span
> style="color:#33cc33"> <xsl:value-of
> select="status"/></span> </xsl:when>
> <xsl:otherwise> <span style="color:#000000">
> <xsl:value-of select="status"/></span></xsl:otherwise>
> </xsl:choose>
>
In 2.0 you can write
<xsl:variable name="p" select="index-of(('undelivered', 'inprogress',
'delivered', 'escalated'), status)"/>
<span style="color:{('#ff0000', '#33cc33', '#33cc33', '#33cc33')[$p]}"/>
One way I sometimes do it in 1.0 is:
<xsl:template match="status[.='undelivered']"
mode="color">#ff0000</xsl:template>
<xsl:template match="status[.='inprogress']"
mode="color">#33cc33</xsl:template>
<xsl:template match="status[.='delivered']"
mode="color">#33cc33</xsl:template>
<xsl:template match="status[.='escalated']"
mode="color">#33cc33</xsl:template>
<span>
<xsl:attribute name="style">
<xsl:text>color:</xsl:text>
<xsl:apply-templates select="status" mode="color"/>
</xsl:attribute>
</span>
Michael Kay
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| Re: [xsl] Problem setting variable , G. Ken Holman | Thread | RE: [xsl] Problem setting variable , Martinez, Brian |
| RE: [xsl] Problem setting variable , cknell | Date | RE: [xsl] Problem setting variable , Michael Kay |
| Month |