15

我有

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

DifferenceInDays有一个可以是负数或正数的值,我想显示它的绝对值。我怎样才能做到这一点?

4

4 回答 4

35

在 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()函数.

于 2009-04-29T23:18:56.383 回答
6

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

<xsl:value-of select="abs(DifferenceInDays)"/>
于 2009-04-29T22:45:27.820 回答
2

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

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

上面的代码将通过使用提供的格式化函数显示天差的绝对值。

于 2014-08-22T07:40:01.210 回答
1

diffInDays * (1 - 2*(diffInDays < 0))

于 2009-05-04T10:08:48.423 回答