|
[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: A - B
Hi,
Michael's format number solution was far better - and should work...
For example,
== XML ===============================
<?xml version="1.0"?>
<root>
<A>37</A>
<B/>
</root>
== end of XML ==========================
== XSL1 ===============================
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:decimal-format NaN="0"/>
<xsl:template match="/">
<xsl:value-of select="format-number(root/A[1],'#.########') -
format-number(root/B[1],'#.########')"/>
</xsl:template>
</xsl:stylesheet>
== end of XSL1 ==========================
will result in 37 as expected.
Or using sum() and checking that the node value actually represents a numeric
value, e.g.
== XSL2 ===============================
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text"/>
<xsl:template match="/">
<xsl:value-of select="sum(root/A[1][number(.) = number(.)]) -
sum(root/B[1][number(.) = number(.)])"/>
</xsl:template>
</xsl:stylesheet>
== end of XSL2 ==========================
should also result in 37.
Cheers
Marrow
-----Original Message-----
From: pcoustillas <pcoustillas@xxxxxxxxxxx>
To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx <xsl-list@xxxxxxxxxxxxxxxxxxxxxx>
Date: 26 August 2002 08:25
Subject: Re: A - B
> thanks, but if i have this XML :
><A>37</A>
><B/>
>
>and my XSL :
><xsl:decimal-format NaN="0" name="forme1" decimal-separator=","
>grouping-separator=" " />
>
>the result is 0 but i expect 37. i've been suggested to use
><xsl:value-of select="format-number(concat('0',11) - concat('0',1), '#
>##0,00','forme1')" />
>
>or
>
><xsl:value-of select="format-number(number(concat('0',11)) -
>number(concat('0',1)), '# ##0,00','forme1')" />
>but it is a bit complicated... isn't there something more simple...
>
>To Marrow : i faced troubles while using sum with the tag <B/> i revieve
>"NaN"
>
>other suggestions ??
>
>Thank.
>
>Michael Leditschke a écrit:
>
>>Typically there's some special value you want
>>in the case where A and/or B don't exist or
>>are not numeric.
>>
>>One trick I've used in this case is
>>
>><xsl:decimal-format NaN="0"/>
>>
>>and
>>
>><xsl:variable name="fred" select="format-number(A-B)"/>
>>
>>This way you get "0" if the result is NaN.
>>
>>HTH
>>Michael
>>
>>
>>
>>>-----Original Message-----
>>>From: owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx
>>>[mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx]On Behalf Of pcoustillas
>>>Sent: Friday, 23 August 2002 1:44 AM
>>>To: mulberrytech
>>>Subject: A - B
>>>
>>>
>>>hi, how could i do A-B when A or B does not exist or is absent...
>>>because without a test i recieve "NaN". Thanks.
>>>
>>>
>>> XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
>>>
>>>
>>>
>>>
>>
>>
>> XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
>>
>>
>>
>
>
>
>
> XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
>
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|

Cart








