我想使用XPath获取数字的符号。在Xpath中是否有内置函数或变通方法。
作为一个例子:当我通过-3.23它应该返回" - "对于3.23,它应该返回" +"
答案 0 :(得分:1)
使用此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中,如果布尔值是算术运算的参数,{ {1}}转换为true()
,1
转换为false()
答案 1 :(得分:0)
您可以通过将数字与0
进行比较来获得隐含的符号:
if ($num >= 0) then '+' else '-'