Как рассчитать абсолютное значение числа в XSLT?

У меня

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

DifferenceInDays может быть отрицательным или положительным, я хочу показать его как положительный. Как я могу это сделать?

Ответы

Ответ 1

В 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().

Ответ 2

Это может быть достигнуто с помощью функции абзаца xpath.

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

Ответ 3

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

Ответ 4

Некоторые из ответов усложняют жизнь слишком много для XSLT 1.0, это на самом деле намного проще. Используя форматирование чисел, вы можете определить структуру для положительных и отрицательных чисел, отрицательный по умолчанию - -0, однако вы можете определить свой собственный.

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

Вышеприведенный код покажет абсолютное значение Difference в Days, используя предоставленную функцию форматирования.