Spec-Zone.ru › OpenJDK 17

Интерфейс 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: Возникает, если выражение не является законным в соответствии с правилами XPathEvaluatori
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, 2021, 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/17/docs/api/jdk.xml.dom/org/w3c/dom/xpath/XPathEvaluator.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API