Subject: Re: [xsl] A - B From: "Marrow" <marrow@xxxxxxxxxxxxxx> Date: Mon, 26 Aug 2002 10:59:24 +0100 |
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: [xsl] 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: [xsl] 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
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] A - B, Marrow | Thread | [xsl] id() doesn't work!?, Aaron Optimizer Digu |
Re: [xsl] A - B, pcoustillas | Date | Re: [xsl] object-oriented XSL, Jeni Tennison |
Month |