Интерфейс XPathEvaluator

public interface XPathEvaluator

Оценивание выражений XPath предоставляется XPathEvaluator. В реализации DOM, поддерживающей функцию XPath 3.0, как описано выше, интерфейс XPathEvaluator будет реализован на том же объекте, который реализует интерфейс Document, что позволит получить его с помощью обычного метода, специфичного для привязки, такого как приведение типа или с помощью метода getInterface DOM уровня 3. В этом случае реализация, полученная из документа, поддерживает модуль XPath DOM и совместима со спецификацией XPath 1.0.

Вычисление выражений со специализированными функциями расширения или переменными может не работать во всех реализациях и поэтому не является переносимым. Реализации XPathEvaluator могут быть доступны из других источников, которые могут предоставить специальную поддержку специализированных функций расширения или переменных, как определено другими спецификациями.

См. также Спецификацию XPath уровня 3 Document Object Model (DOM).

Методы

Модификатор и тип Метод Описание
XPathExpression createExpression​(String expression, XPathNSResolver resolver)

Создаёт разобранное выражение XPath с разрешёнными именами пространств имён.

XPathNSResolver createNSResolver​(Node nodeResolver)

Адаптирует любой узел DOM для разрешения имён пространств, чтобы выражение XPath можно было легко оценить относительно контекста узла, где оно появилось в документе.

Object evaluate​(String expression, Node contextNode, XPathNSResolver resolver, short type, Object result)

Оценивает строку выражения XPath и возвращает результат указанного типа, если это возможно.

Методы

createExpression

XPathExpression createExpression(String expression,
                                 XPathNSResolver resolver)
                          throws XPathException,
                                 DOMException

Создаёт разобранное выражение XPath с разрешёнными именами пространств имён. Это полезно, когда выражение будет повторно использоваться в приложении, поскольку это позволяет скомпилировать строку выражения в более эффективный внутренний вид и предварительно разрешить все префиксы имён пространств, которые встречаются в выражении.

Параметры:
expression - Строка выражения XPath, подлежащая разбору.
resolver - resolver позволяет преобразовать префиксы в выражении XPath в соответствующие URI пространств имён. Если это задано как null, любой префикс имени пространства в выражении приведёт к исключению DOMException с кодом NAMESPACE_ERR.
Возвращает:
Скомпилированную форму выражения XPath.
Исключения:
XPathException - INVALID_EXPRESSION_ERR: Выбрасывается, если выражение не является допустимым в соответствии с правилами XPathEvaluator.
DOMException - NAMESPACE_ERR: Выбрасывается, если выражение содержит префиксы имён пространств, которые не могут быть разрешены указанным XPathNSResolver.

createNSResolver

XPathNSResolver createNSResolver(Node nodeResolver)

Адаптирует любой узел DOM для разрешения имён пространств, чтобы выражение XPath можно было легко оценить относительно контекста узла, где оно появилось в документе. Этот адаптер работает так же, как метод DOM уровня 3 lookupNamespaceURI для узлов, разрешая namespaceURI по заданному префиксу, используя текущую информацию, доступную в иерархии узла на момент вызова lookupNamespaceURI. Также правильно разрешает неявный префикс xml.

Параметры:
nodeResolver - Узел, используемый в качестве контекста для разрешения имён пространств.
Возвращает:
XPathNSResolver , который разрешает имена пространств относительно определений, действующих для указанного узла.

evaluate

Object evaluate(String expression,
                Node contextNode,
                XPathNSResolver resolver,
                short type,
                Object result)
         throws XPathException,
                DOMException

Оценивает строку выражения XPath и возвращает результат указанного типа, если это возможно.

Параметры:
expression - Строка выражения XPath, подлежащая разбору и оценке.
contextNode - context - это контекстный узел для вычисления этого выражения XPath. Если XPathEvaluator был получен путём приведения типа Document, то он должен принадлежать тому же документу и должен быть узлом Document, Element, Attribute, Text, CDATASection, Comment, ProcessingInstruction, или XPathNamespace. Если контекстный узел является узлом Text или CDATASection, то контекст интерпретируется как весь логический текстовый узел, как отображается XPath, если только узел не пустой, в этом случае он не может служить контекстом XPath.
resolver - resolver позволяет преобразовать префиксы в выражении XPath в соответствующие URI пространств имён. Если это задано как null, любой префикс имени пространства в выражении приведёт к исключению DOMException с кодом NAMESPACE_ERR.
type - Если задан конкретный type, то результат будет возвращён как соответствующий тип. Для результатов XPath 1.0 этот параметр должен быть одним из кодов интерфейса XPathResult.
result - result указывает на конкретный объект результата, который может быть повторно использован и возвращён этим методом. Если это задано как null или реализация не повторно использует указанный результат, то будет создан и возвращён новый объект результата. Для результатов XPath 1.0 этот объект будет типа XPathResult.
Возвращает:
Результат вычисления выражения XPath. Для результатов XPath 1.0 этот объект будет типа XPathResult.
Исключения:
XPathException - INVALID_EXPRESSION_ERR: Выбрасывается, если выражение не является допустимым в соответствии с правилами XPathEvaluatori
TYPE_ERR: Выбрасывается, если результат не может быть преобразован в указанный тип.
DOMException - NAMESPACE_ERR: Выбрасывается, если выражение содержит префиксы имён пространств, которые не могут быть разрешены указанным XPathNSResolver.
WRONG_DOCUMENT_ERR: Узел принадлежит документу, который не поддерживается этим XPathEvaluator.
NOT_SUPPORTED_ERR: Узел не является типом, разрешённым в качестве узла контекста XPath, или тип запроса не разрешён этим XPathEvaluator.

© 1993, 2020, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/11/docs/api/jdk.xml.dom/org/w3c/dom/xpath/XPathEvaluator.html

Spec-Zone .ru
спецификации, руководства, описания, API