XPathEvaluator:evaluate() 方法

Baseline 已廣泛支援

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

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

語法

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

引數

表示式

一個表示要解析和評估的 XPath 表示式的字串。

contextNode

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

resolver 可選

一個 Nodenull 或任何實現了 lookupNamespaceURI 方法的物件。允許將 XPath 表示式中的所有字首(包括 xml 名稱空間字首)轉換為適當的名稱空間 URI。

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 evaluator = new XPathEvaluator();
const result = evaluator.evaluate(
  "//div",
  document,
  null,
  XPathResult.ORDERED_NODE_SNAPSHOT_TYPE,
);
document.querySelector("output").textContent = result.snapshotLength;

結果

規範

規範
DOM
# dom-xpathevaluatorbase-evaluate

瀏覽器相容性