XPathEvaluator:evaluate() 方法
XPathEvaluator
接口的 evaluate()
方法在给定的节点或文档上执行 XPath 表达式,并返回一个 XPathResult
。
语法
evaluate(expression, contextNode)
evaluate(expression, contextNode, resolver)
evaluate(expression, contextNode, resolver, type)
evaluate(expression, contextNode, resolver, type, result)
参数
expression
-
表示要解析和评估的 XPath 表达式的字符串。
contextNode
-
表示用于评估表达式的上下文的
Node
。 resolver
可选-
一个
Node
、null
或任何实现了lookupNamespaceURI
方法的对象。允许将 XPath 表达式中所有前缀(包括xml
命名空间前缀)转换为相应的命名空间 URI。 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
<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 |
浏览器兼容性
BCD 表格仅在启用 JavaScript 的浏览器中加载。