I want to calculate the modulus of a number in the XPath, but this is not working:
<xsl:if test="(count()%8)">
How would I do it? I Looked at the XPath function reference here, but didn't see anything like that.
In XPath 2.0 (XSLT 2.0) use the abs() function. This can be achieved using the xpath abs function.
The mod operator returns the remainder from a truncating division. For example, 5 mod 2 returns 1.
try "mod"
see http://www.w3.org/TR/xpath#numbers
Details from that link:
The mod operator returns the remainder from a truncating division. For example,
5 mod 2 returns 1
5 mod -2 returns 1
-5 mod 2 returns -1
-5 mod -2 returns -1
NOTE: This is the same as the % operator in Java and ECMAScript.
Try
<xsl:if test="(count() mod 8)">
as in XSL you have to use "mod" to get modulus
Also watch out when doing addition/subtraction. When doing addition all should be good with $var1+$var2. But in Subtraction, since a dash (-) is valid in a variable name $var1-$var2 does not work. But $var1 - $var2 should, and number($var1) - number($var2) always should work and you can see an article I wrote about in relation to the use of XPATH in Novell's Identity Manager product.
XPATH Math thoughts
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With