У меня есть
<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()
. .
Этого можно добиться с помощью функции xpath abs.
<xsl:value-of select="abs(DifferenceInDays)"/>
Некоторые ответы слишком усложняют жизнь для XSLT 1.0, на самом деле это намного проще. Используя форматирование чисел, вы можете определить структуру для положительных и отрицательных чисел, отрицательным по умолчанию является -0
, однако вы можете определить свою собственную.
<xsl:value-of select='format-number(DifferenceInDays,"0;0")'/>
Приведенный выше код покажет абсолютное значение разницы в днях, просто используя предоставленную функцию форматирования.
translate($number, '-', '')
.
- person michael.hor257k; 22.08.2014
diffInDays * (1 - 2*(diffInDays 0))