XPathEvaluator:evaluate() 方法
XPathEvaluator 接口的 evaluate() 方法会在给定的节点或文档上执行 XPath 表达式,并返回一个 XPathResult。
语法
evaluate(expression, contextNode)
evaluate(expression, contextNode, resolver)
evaluate(expression, contextNode, resolver, type)
evaluate(expression, contextNode, resolver, type, result)
参数
表达式-
一个表示要解析和评估的 XPath 表达式的字符串。
contextNode-
一个表示用于评估表达式的上下文的
Node。 resolver可选-
一个
Node、null或任何实现了lookupNamespaceURI方法的对象。允许将 XPath 表达式中的所有前缀(包括xml命名空间前缀)转换为适当的命名空间 URI。 type可选-
指定通过评估表达式返回的结果的类型。这必须是
XPathResult.Constants之一。 result可选-
允许指定一个可能被此方法重用并返回的结果对象。如果指定为
null或实现不重用指定的结果,则将返回一个新的结果对象。
返回值
一个表示 XPath 表达式评估结果的 XPathResult 对象。
异常
INVALID_EXPRESSION_ERR
如果表达式根据 XPathEvaluator 的规则不是合法的,则会引发一个类型为 INVALID_EXPRESSION_ERR 的 DOMException。
TYPE_ERR
如果结果无法转换为指定的类型,则会引发一个类型为 TYPE_ERR 的 DOMException。
NAMESPACE_ERR
如果表达式包含由指定的 XPathNSResolver 无法解析的命名空间前缀,则会引发一个类型为 NAMESPACE_ERROR 的 DOMException。
WRONG_DOCUMENT_ERR
如果提供的上下文节点来自 XPathEvaluator 不支持的文档,则会引发一个类型为 WRONG_DOCUMENT_ERR 的 DOMException。
NOT_SUPPORTED_ERR
如果提供的上下文节点不是允许作为 XPath 上下文节点的类型,或者请求的类型不是 XPathEvaluator 允许的,则会引发一个类型为 NOT_SUPPORTED_ERR 的 DOMException。
示例
以下示例显示了 evaluate() 方法的用法。
HTML
<div>XPath example</div>
<div>Number of <div>s: <output></output></div>
JavaScript
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 |
浏览器兼容性
加载中…