Как я могу рассчитать абсолютное значение числа в XSLT? - PullRequest
13 голосов
/ 30 апреля 2009

у меня

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

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

Ответы [ 4 ]

30 голосов
/ 30 апреля 2009

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

6 голосов
/ 30 апреля 2009

Этого можно добиться с помощью функции xpath abs.

<xsl:value-of select="abs(DifferenceInDays)"/>
1 голос
/ 04 мая 2009

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

0 голосов
/ 22 августа 2014

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...