Как получить модуль числа в XPath/XSLT?

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

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

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

Ответ 1

попробуйте "mod"

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

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

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

5 mod 2 возвращает 1

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

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

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

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

Ответ 2

Попробуйте

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

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

Ответ 3

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

Мышцы XPATH Math