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_ERR
的 XPathException
。
TYPE_ERR
如果结果无法转换为指定类型,则会抛出一个类型为 TYPE_ERR
的 XPathException
。
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 |
浏览器兼容性
BCD 表格仅在浏览器中加载