files/en-us/web/api/xpathevaluator/evaluate/index.md
{{APIRef("DOM")}}
The evaluate() method of the {{domxref("XPathEvaluator")}} interface
executes an XPath expression on the given node or document and returns an
{{domxref("XPathResult")}}.
evaluate(expression, contextNode)
evaluate(expression, contextNode, resolver)
evaluate(expression, contextNode, resolver, type)
evaluate(expression, contextNode, resolver, type, result)
expression
contextNode
resolver {{optional_inline}}
null, or any object implementing the {{domxref("Node/lookupNamespaceURI", "lookupNamespaceURI")}} method. Permits translation of all prefixes, including the xml namespace
prefix, within the XPath expression into appropriate namespace URIs.type {{optional_inline}}
result {{optional_inline}}
null or the implementation does not reuse the
specified result, a new result object will be returned.An {{domxref("XPathResult")}} object representing the result of evaluating the XPath expression.
If the expression is not legal according to the rules of the
{{domxref("XPathEvaluator")}}, a {{domxref("DOMException")}} of type
INVALID_EXPRESSION_ERR is raised.
In case result cannot be converted to the specified type, a
{{domxref("DOMException")}} of type TYPE_ERR is raised.
If the expression contains namespace prefixes which cannot be resolved by the specified
XPathNSResolver, a {{domxref("DOMException")}} of type
NAMESPACE_ERROR is raised.
If the provided context node is from a document that is not supported by the
{{domxref("XPathEvaluator")}}, a {{domxref("DOMException")}} of type
WRONG_DOCUMENT_ERR is raised.
If the provided context node is not a type permitted as an XPath context node or the
request type is not permitted by the {{domxref("XPathEvaluator")}}, a
{{domxref("DOMException")}} of type NOT_SUPPORTED_ERR is raised.
The following example shows the use of the evaluate() method.
<div>XPath example</div>
<div>Number of <div>s: <output></output></div>
const evaluator = new XPathEvaluator();
const result = evaluator.evaluate(
"//div",
document,
null,
XPathResult.ORDERED_NODE_SNAPSHOT_TYPE,
);
document.querySelector("output").textContent = result.snapshotLength;
{{EmbedLiveSample('Examples')}}
{{Specifications}}
{{Compat}}