我可以使用 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
我想使用 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