我不完全理解我在使用XPath联合运算符时所看到的行为。
具有以下XML
<root>
<foo>hello</foo>
<bar>world</bar>
</root>对于不同的XPath表达式,我们得到了这些结果
(/root/foo | /root/bar)[1] -> hello(/root/foo | /root/bar)[last()] ->世界(substring(/root/foo, 2, 4) | /root/bar)[1] -> ello(substring(/root/foo, 2, 4) | /root/bar)[last()] ->世界到目前为止,它们都是直观的结果,但是..。
(/root/foo | substring(/root/bar, 2, 4))[1] -> 或(期望你好)(/root/foo | substring(/root/bar, 2, 4))[last()] -> hello (预期)是否有理由提出结果?这些是否符合XPath 2.0规范?
发布于 2013-03-07 12:49:42
TIBCO BusinessWorks只兼容XPath 1.0。有些XPath 2.0函数是受支持的。(资料来源: FAQ1-7BXZE5 on http://support.tibco.com)
来回答你的两个问题:
是。XPath 1.0的联合结果是不可预测的。一个很好的规则是:在BusinessWorks中不应该依赖Union order,即使在简单的情况下也是如此。
结果不符合XPath 2.0规范,但您的查询使用XPath 1.0引擎进行评估。
发布于 2013-02-28 16:46:22
不,最后两个结果不符合规范。如果联合运算符的操作数是字符串而不是节点,则是类型错误,这在最后两个示例中是这样的。
https://stackoverflow.com/questions/15140537
复制相似问题