XPathExpression: evaluate() 方法
XPathExpression
接口的 evaluate()
方法会在给定的节点或文档上执行 XPath 表达式,并返回一个 XPathResult
。
语法
js
evaluate(contextNode)
evaluate(contextNode, type)
evaluate(contextNode, type, result)
参数
contextNode
-
一个表示用于评估表达式的上下文的
Node
。 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
html
<div>XPath example</div>
<div>Number of <div>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 |
浏览器兼容性
加载中…