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

我可以使用xpath获取数字的符号吗,xpath,xpath-2.0,Xpath,Xpath 2.0,我想使用XPath获取数字的符号。Xpath中是否有内置函数或解决方法 例如:当我通过-3.23时,它应该返回“-”,而对于3.23,它应该返回“+”通过将数字与0进行比较,可以得到隐含符号: if ($num >= 0) then '+' else '-' 使用此XPath 2.0表达式: '+'[$x ge 0], '-'[$x lt 0] substring('+-', 2 - ($x >= 0), 1) 其中$x是需要其符号的数字 这较短,效率可能略高(只有一个比较)

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


例如:当我通过-3.23时,它应该返回“-”,而对于3.23,它应该返回“+”

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

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

使用此XPath 2.0表达式

'+'[$x ge 0], '-'[$x lt 0]
substring('+-', 2 - ($x  >= 0), 1)
其中$x是需要其符号的数字

这较短,效率可能略高(只有一个比较):


使用此XPath 1.0表达式

'+'[$x ge 0], '-'[$x lt 0]
substring('+-', 2 - ($x  >= 0), 1)
说明
该表达式生成字符串
'+-'
的子字符串,长度为1,偏移量由
2-($x>=0)
确定,在XPath 1.0中,如果布尔值是算术运算的参数,
true()
将转换为
1
false()
被转换为
0

@MarcB这对正数应该如何工作?我能得到这个数的绝对值吗?是的,XPath 2.0有,但您可以简单地与0进行比较,然后使用
if-then
返回
+
-
,如我在中所示。0呢?它应该返回+还是不返回?