XPathExpression: evaluate() メソッド

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

evaluate()XPathExpression インターフェイスのメソッドで、指定されたノードまたは文書に対して XPath 式を実行し、XPathResult を返します。

構文

js
evaluate(contextNode)
evaluate(contextNode, type)
evaluate(contextNode, type, result)

引数

contextNode

式を評価するために使用するコンテキストを表す Node です。

type 省略可

式を評価して返す結果の型を指定します。これはXPathResult.定数のいずれかでなければなりません。

result 省略可

このメソッドが再利用して返す結果オブジェクトを指定することができます。 null を指定した場合や、実装が指定した結果を再利用しない場合は、新しい結果オブジェクトを返します。

返値

XPath 式の評価結果を表す XPathResult オブジェクト。

例外

INVALID_EXPRESSION_ERR

式が XPathEvaluator の規則に従っていなかった場合、 `INVALID_EXPRESSION_ERR`` 型の XPathException が発生します。

TYPE_ERR

結果を指定した型に変換できなかた場合、 TYPE_ERR 型の XPathException が発生します。

NAMESPACE_ERR

指定した XPathNSResolver で解決できない名前空間接頭辞が式に格納されていた場合、 NAMESPACE_ERROR 型の DOMException が発生します。

WRONG_DOCUMENT_ERR

指定されたコンテキストノードが XPathEvaluator で対応していない文書のものである場合、 WRONG_DOCUMENT_ERR 型の DOMException が発生します。

NOT_SUPPORTED_ERR

指定されたコンテキストノードが XPath コンテキストノードとして許可されていない型であるか、リクエストの型が XPathEvaluator によって許可されていない場合、 NOT_SUPPORTED_ERR 型の DOMException が発生します。

次の例では evaluate() メソッドを使用しています。

HTML

html
<div>XPath example</div>
<div>Number of &lt;div&gt;s: <output></output></div>

JavaScript

js
const xpath = "//div";
const evaluator = new XPathEvaluator();
const expression = evaluator.createExpression("//div");
const result = expression.evaluate(
  document,
  XPathResult.ORDERED_NODE_SNAPSHOT_TYPE,
);
document.querySelector("output").textContent = result.snapshotLength;

結果

仕様書

Specification
DOM Standard
# dom-xpathexpression-evaluate

ブラウザーの互換性

BCD tables only load in the browser