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 仕様に準拠していますか?