【发布时间】:2010-10-22 17:02:35
【问题描述】:
我有
<xsl:value-of select="DifferenceInDays" />
DifferenceInDays 有一个可以是负数或正数的值,我想显示它的绝对值。我该怎么做?
【问题讨论】:
-
也许你可以接受一个答案?
我有
<xsl:value-of select="DifferenceInDays" />
DifferenceInDays 有一个可以是负数或正数的值,我想显示它的绝对值。我该怎么做?
【问题讨论】:
在 XPath 1.0 中使用以下表达式:
$vNum*($vNum >=0) - $vNum*($vNum < 0)
如果此表达式嵌入在 XSLT (XML) 属性中,则必须对 < 字符进行转义:
$vNum*($vNum >=0) - $vNum*($vNum < 0)
在 XPath 2.0 (XSLT 2.0) 中使用 abs() 函数。
【讨论】:
有些答案对于 XSLT 1.0 来说过于复杂了,实际上它要简单得多。使用数字格式,您可以定义正数和负数的结构,默认负数是-0,但是您可以定义自己的。
<xsl:value-of select='format-number(DifferenceInDays,"0;0")'/>
上面的代码将通过使用提供的格式化函数来显示Difference in Days的绝对值。
【讨论】:
translate($number, '-', '')。
diffInDays * (1 - 2*(diffInDays
【讨论】:
这可以使用 xpath abs 函数来实现。
<xsl:value-of select="abs(DifferenceInDays)"/>
【讨论】: