xsl-list
[Top] [All Lists]

RE: xsl:if statement with numeric

2004-03-28 03:47:18
Hallo Andreas

Thank you very much for your kind answer. 
That was a great idea and I like you're solution.  
have a nice day 

Tuan



-----Original Message-----
From: Tuan Luu [mailto:tuanluu(_at_)gmx(_dot_)ch]

somehow I  did find a solution:


Hi,

Well, to add a few pointers :


<xsl:template match="monat">
        <xsl:if test= "numeric(.) &lt; 100.00">

This should be number() instead of numeric(), but this you already
discovered..

            <xsl:variable name="farbe">#00ff00</xsl:variable>
        </xsl:if>
    <td bgcolor="$farbe" align="right">

Then this here should become:

<td bgcolor="{$farbe}" align="right">

Notice the curly braces {} to force the processor to interpret '$farbe' as
a
variable name, or more generally as an XPath expression.

Somehow, I would consider putting a color-map somewhere in the source XML,
the stylesheet or a separate XML, like:

<colormap>
  <color min="0" color="#ff9600" />
  <color min="98.70" color="#ff0000" />
  <color min="100" color="#00ff00" />
</colormap>

Then you could avoid all the xsl:choose / xsl:if logic by merely fetching
the color value corresponding to the number value in question, like

<xsl:template match="monat">
  <td bgcolor="{/colormap/color[(_at_)min &gt;= number(current())][1]/@color}"
      align="right">
...

So, fetch the color attribute from the first color node whose min value is
greater than or equal to the current value.


Hope this helps!

Cheers,

Andreas


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


-- 
+++ NEU bei GMX und erstmalig in Deutschland: TÜV-geprüfter Virenschutz +++
100% Virenerkennung nach Wildlist. Infos: http://www.gmx.net/virenschutz



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