XPathExpression: evaluate() 方法

evaluate()XPathExpression 接口的方法,它在给定节点或文档上执行 XPath 表达式并返回一个 XPathResult

语法

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

参数

contextNode

一个表示用于评估表达式的上下文的 Node

type 可选

指定评估表达式后要返回的结果类型。这必须是 XPathResult.Constants 中的一个。

result 可选

允许指定一个结果对象,该对象可以被此方法重用并返回。如果指定为 null 或实现不重用指定的结果,则将返回一个新的结果对象。

返回值

一个 XPathResult 对象,表示评估 XPath 表达式的结果。

异常

INVALID_EXPRESSION_ERR

如果表达式不符合 XPathEvaluator 规则的语法,则会抛出一个类型为 INVALID_EXPRESSION_ERRXPathException

TYPE_ERR

如果结果无法转换为指定类型,则会抛出一个类型为 TYPE_ERRXPathException

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

浏览器兼容性

BCD 表格仅在浏览器中加载