XPathExpression: evaluate() 方法

Baseline 已廣泛支援

此特性已相當成熟,可在許多裝置和瀏覽器版本上使用。自 ⁨2015 年 7 月⁩以來,各瀏覽器均已提供此特性。

XPathExpression 介面的 evaluate() 方法會在給定的節點或文件上執行 XPath 表示式,並返回一個 XPathResult

語法

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

引數

contextNode

一個表示用於評估表示式的上下文的 Node

type 可選

指定表示式評估後要返回的結果型別。這必須是 XPathResult.Constants 中的一個。

result 可選

允許指定一個可重用並由該方法返回的結果物件。如果指定為 null 或實現不重用指定的結果,則會返回一個新的結果物件。

返回值

一個表示 XPath 表示式評估結果的 XPathResult 物件。

異常

INVALID_EXPRESSION_ERR

如果表示式不符合 XPathEvaluator 的規則,則會引發型別為 INVALID_EXPRESSION_ERRDOMException

TYPE_ERR

如果結果無法轉換為指定型別,則會引發型別為 TYPE_ERRDOMException

NAMESPACE_ERR

如果表示式包含由指定的 XPathNSResolver 無法解析的名稱空間字首,則會引發一個型別為 NAMESPACE_ERRORDOMException

WRONG_DOCUMENT_ERR

如果提供的上下文節點來自 XPathEvaluator 不支援的文件,則會引發型別為 WRONG_DOCUMENT_ERRDOMException

NOT_SUPPORTED_ERR

如果提供的上下文節點不是 XPath 上下文節點允許的型別,或者請求的型別不被 XPathEvaluator 允許,則會引發型別為 NOT_SUPPORTED_ERRDOMException

示例

以下示例顯示了 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;

結果

規範

規範
DOM
# dom-xpathexpression-evaluate

瀏覽器相容性