返されるノードの優先順位について
Firefoxのウェブコンソール上で
<h1><span class='A'>テキスト1</span><span>テキスト2</span></h1>
なる形のh1
要素に対し、
document.evaluate("span[@class='A']|.", <h1要素をあらわすノード>, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue.innerText
と呼び出したところ、
"テキスト1テキスト2"
というテキストが得られました。これはspan[@class='A']
ではなく.
が文書順で先に来るノードにマッチするから(外側のノードが文書順では先だから)と考えて良いのでしょうか?
また、文書順に関わらずにxpath1
にマッチするノードを優先し、そのようなノードが存在しない場合にxpath2
にマッチするノードを返す、ということを単一のXPathで実現できるのでしょうか?
(上に書いた通りxpath1 | xpath2
とするだけではダメでした。集合を返すので当然と言えば当然ですが)