Как получить модуль числа в XPath / XSLT? - PullRequest
16 голосов
/ 04 марта 2009

Я хочу вычислить модуль числа в XPath, но это не работает:

<xsl:if test="(count()%8)">

Как бы я это сделал? Я посмотрел ссылку на функцию XPath здесь , но ничего подобного не увидел.

Ответы [ 3 ]

35 голосов
/ 04 марта 2009

попробуйте "мод"

см. http://www.w3.org/TR/xpath#numbers

Подробности по этой ссылке:

Оператор мода возвращает остаток от усеченного деления. За например,

5 мод 2 возвращает 1

5 мод -2 возвращает 1

-5 мод 2 возвращает -1

-5 мод -2 возвращает -1

ПРИМЕЧАНИЕ. Это то же самое, что и оператор% в Java и ECMAScript.

14 голосов
/ 04 марта 2009

Попробуйте

<xsl:if test="(count() mod 8)"> 

как и в XSL, вы должны использовать "mod", чтобы получить модуль

6 голосов
/ 04 марта 2009

Также будьте внимательны при выполнении сложения / вычитания. При сложении все должно быть хорошо с $ var1 + $ var2. Но в Subtraction, поскольку дефис (-) допустим в имени переменной $ var1- $ var2, не работает. Но $ var1 - $ var2 должны работать, а число ($ var1) - число ($ var2) всегда должно работать, и вы можете увидеть статью, о которой я писал относительно использования XPATH в продукте Novell Identity Manager.

XPATH Математические мысли

...