如何计算XSLT中数字的绝对值?

时间:2009-04-29 21:48:14

标签: xslt

我有

<xsl:value-of select="DifferenceInDays" /> 

DifferenceInDays可能是消极的或积极的,我想将其显示为正面。我怎么能这样做?

4 个答案:

答案 0 :(得分:30)

在XPath 1.0中使用以下表达式

   $vNum*($vNum >=0) - $vNum*($vNum < 0)

如果此表达式嵌入在XSLT(XML)属性中,则必须转义<字符:

   $vNum*($vNum >=0) - $vNum*($vNum &lt; 0)

在XPath 2.0(XSLT 2.0)中使用abs()函数

答案 1 :(得分:6)

这可以使用xpath abs函数来实现。

<xsl:value-of select="abs(DifferenceInDays)"/>

答案 2 :(得分:1)

diffInDays *(1 - 2 *(diffInDays&amp; lt; 0))

答案 3 :(得分:-1)

对于XSLT 1.0来说,有些答案使生活过于复杂,实际上要简单得多。使用数字格式,您可以定义正数和负数的结构,默认负数为-0,但您可以定义自己的数字。

<xsl:value-of select='format-number(DifferenceInDays,"0;0")'/>

以上代码仅使用提供的格式化功能显示“天数差异”的绝对值。