我不完全理解使用 XPath 联合运算符时看到的行为。
具有以下 XML
<root>
<foo>hello</foo>
<bar>world</bar>
</root>
我们得到不同 XPath 表达式的这些结果
(/root/foo | /root/bar)[1]
-> 你好(/root/foo | /root/bar)[last()]
-> 世界(substring(/root/foo, 2, 4) | /root/bar)[1]
- >你好(substring(/root/foo, 2, 4) | /root/bar)[last()]
-> 世界
到目前为止,它们是直观的结果,但是......
(/root/foo | substring(/root/bar, 2, 4))[1]
-> orld(期待你好)(/root/foo | substring(/root/bar, 2, 4))[last()]
->你好(预期的orld)
呈现结果是否有原因?这些是否符合 XPath 2.0 规范?