This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re: Addition/Subtraction of numbers.
- From: Jeni Tennison <jeni at jenitennison dot com>
- To: "Avula, Raj" <RAvula at firstam dot com>
- Cc: "'xsl-list at lists dot mulberrytech dot com'" <xsl-list at lists dot mulberrytech dot com>
- Date: Wed, 23 Jan 2002 11:48:26 +0000
- Subject: Re: [xsl] Addition/Subtraction of numbers.
- Organization: Jeni Tennison Consulting Ltd
- References: <F16E03C431B5D211893000104BC5C1A70A74A217@powaymail.credco.firstam.com>
- Reply-to: xsl-list at lists dot mulberrytech dot com
Hi Raj,
> I am trying to add numbers present in two variables like
>
> <xsl:variable name="temp1" select="$t1 + $t2" />
>
> if varaibles t1 , t2 have some numbers, it goes through fine. But if
> they are null NaN is comming in the output. is there a way I can
> convert these variables to numbers before adding them(null should be
> converted to zero) or Is there any other way to handle this
> condition.
In XSLT 1.0 you need something like:
<xsl:variable name="n1">
<xsl:choose>
<xsl:when test="number($t1) = number($t1)">
<xsl:value-of select="$t1" />
</xsl:when>
<xsl:otherwise>0</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="n2">
<xsl:choose>
<xsl:when test="number($t2) = number($t2)">
<xsl:value-of select="$t2" />
</xsl:when>
<xsl:otherwise>0</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="temp1" select="$n1 + $n2" />
---
XSLT 2.0 makes it easier because of the conditional expressions in
XPath 2.0. You can do:
<xsl:variable name="n1"
select="if (number($t1) = number($t1)) then $t1 else 0" />
<xsl:variable name="n2"
select="if (number($t2) = number($t2)) then $t2 else 0" />
<xsl:variable name="temp1" select="$n1 + $n2" />
Depending on how you're getting the values of $t1 and $t2 (and the
final definition of if-absent()) it might also be possible to use the
if-absent() function:
<xsl:variable name="temp1"
select="if-absent($t1, 0) + if-absent($t2, 0)" />
Cheers,
Jeni
---
Jeni Tennison
http://www.jenitennison.com/
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list