XPathEvaluator:evaluate() 方法

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

语法

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

参数

expression

表示要解析和评估的 XPath 表达式的字符串。

contextNode

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

resolver 可选

一个 Nodenull 或任何实现了 lookupNamespaceURI 方法的对象。允许将 XPath 表达式中所有前缀(包括 xml 命名空间前缀)转换为相应的命名空间 URI。

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 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

浏览器兼容性

BCD 表格仅在启用 JavaScript 的浏览器中加载。