Subject: RE: xsl:if statement with numeric
From: "Tuan Luu" <tuanluu@xxxxxx>
Date: Sun, 28 Mar 2004 12:47:18 +0200 (MEST)
|
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@xxxxxx]
> >
> > somehow I did find a solution:
> >
>
> Hi,
>
> Well, to add a few pointers :
>
> > >
> > > <xsl:template match="monat">
> > > <xsl:if test= "numeric(.) < 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[@min >= 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
>
--
+++ NEU bei GMX und erstmalig in Deutschland: T\V-gepr|fter Virenschutz +++
100% Virenerkennung nach Wildlist. Infos: http://www.gmx.net/virenschutz
| Current Thread |
|
Michael Kay - Sun, 28 Mar 2004 11:48:17 -0500 (EST)
|
|