プログラミング

JavaScriptのxpathで全ての結果を受け取る方法

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;

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です