我可以使用 xpath 获取数字的符号吗

Can I get the sign of the number using xpath

我想使用 XPath 获取数字的符号。 Xpath 中是否有内置函数或解决方法。

举个例子:当我传递 -3.23 时它应该 return “-” 而对于 3.23 它应该 return “+”

你可以通过将数字与0进行比较来得到隐含的符号:

if ($num >= 0) then '+' else '-'

使用这个 XPath 2.0 表达式:

'+'[$x ge 0], '-'[$x lt 0]

其中 $x 是数字,需要其符号。

这个更短而且效率可能稍微高一些(只有一个比较):

('+'[$x ge 0], '-')[1]

使用这个 XPath 1.0 表达式:

substring('+-', 2 - ($x  >= 0), 1)

说明: 该表达式生成字符串 '+-' 的子字符串,长度为 1,偏移量由 2 - ($x >= 0) 确定——我们在 XPath 1.0 中使用了这样一个事实,如果布尔值是算术运算的参数,true() 转换为 1 并且 false() 转换为 0