XPathExpression: метод evaluate()
Базовая поддержка Широко доступна
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна в браузерах с июля 2015 года.
Метод evaluate() интерфейса XPathExpression выполняет выражение XPath на заданном узле или документе и возвращает XPathResult.
Синтаксис
evaluate(contextNode) evaluate(contextNode, type) evaluate(contextNode, type, result)
Параметры
contextNode-
Объект
Node, представляющий контекст для оценки выражения. typeНеобязательно-
Определяет тип результата, возвращаемого при оценке выражения. Должно быть одно из значений
XPathResult.Constants. resultНеобязательно-
Позволяет указать объект результата, который может быть повторно использован и возвращён данным методом. Если это значение задано как
null, или реализация не использует указанный результат, будет возвращён новый объект результата.
Возвращаемое значение
Объект XPathResult, представляющий результат оценки выражения XPath.
Исключения
INVALID_EXPRESSION_ERR
Если выражение некорректно согласно правилам XPathEvaluator, выбрасывается исключение XPathException типа INVALID_EXPRESSION_ERR.
TYPE_ERR
В случае, если результат не может быть преобразован в указанный тип, выбрасывается исключение XPathException типа TYPE_ERR.
NAMESPACE_ERR
Если выражение содержит префиксы пространства имён, которые не могут быть разрешены указанным XPathNSResolver, выбрасывается исключение DOMException типа NAMESPACE_ERROR.
WRONG_DOCUMENT_ERR
Если предоставленный узел контекста принадлежит документу, который не поддерживается XPathEvaluator, выбрасывается исключение DOMException типа WRONG_DOCUMENT_ERR.
NOT_SUPPORTED_ERR
Если предоставленный узел контекста не является типом, разрешённым как узел контекста XPath, или тип запроса не разрешён XPathEvaluator, выбрасывается исключение DOMException типа NOT_SUPPORTED_ERR.
Примеры
В следующем примере показано использование метода evaluate().
HTML
<div>XPath example</div> <div>Number of <div>s: <output></output></div>
JavaScript
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 |
Совместимость с браузерами
| Рабочие столы | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari на IOS | Samsung Internet | WebView Android | |
evaluate |
1 | 12 | 1 | ≤12.1 | 3 | 18 | 4 | ≤12.1 | 1 | 1.0 | 4.4 |
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/XPathExpression/evaluate