JavaScriptではxpathの全ての結果を配列として受け取ることができるようなメソッドがビルトインではありません。例えばCSSセレクターだと、”querySelectorAll”メソッドなどが使えますが、xpathに対してはそういうものがないということです。
以下のコードではそれを定義し、以下に使用例を挙げました。
function getElementsByXPath(xpath, parent)
{
let results = [];
let query = document.evaluate(xpath,
parent || document,
null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
for (let i=0, length=query.snapshotLength; i<length; ++i) {
results.push(query.snapshotItem(i));
}
return results;
}
getElementsByXPath('/html/body//h2')[0].innerText;
getElementsByXPath('/html/body//h2')[1].innerText;