XPathEvaluator: createExpression() 方法

Baseline 已广泛支持

此特性已相当成熟,可在许多设备和浏览器版本上使用。自 ⁨2015 年 7 月⁩以来,各浏览器均已提供此特性。

此方法用于编译一个 XPathExpression 对象,该对象随后可用于(重复)评估 XPath 表达式。

语法

js
createExpression(expression)
createExpression(expression, resolver)

参数

表达式

表示要创建的 XPath 表达式的字符串。

resolver 可选

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

返回值

一个 XPathExpression 对象,表示 XPath 表达式的编译形式。

异常

INVALID_EXPRESSION_ERR

如果表达式不符合 XPathEvaluator 的规则,则会抛出类型为 INVALID_EXPRESSION_ERRDOMException

NAMESPACE_ERR

如果表达式包含由指定的 XPathNSResolver 无法解析的命名空间前缀,则会引发一个类型为 NAMESPACE_ERRORDOMException

示例

以下示例显示了 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(xpath);
const result = expression.evaluate(
  document,
  XPathResult.ORDERED_NODE_SNAPSHOT_TYPE,
);
document.querySelector("output").textContent = result.snapshotLength;

结果

规范

规范
DOM
# dom-xpathevaluatorbase-createexpression

浏览器兼容性

另见