Интерфейс XPath
public interface XPath
XPath предоставляет доступ к среде выполнения и выражениям XPath.
| Вычисление выражений XPath. | |
|---|---|
| контекст | Если запрос на вычисление выражения выполняется без контекстного элемента, будет использоваться пустой узел документа в качестве контекста. Для целей вычисления выражений XPath фрагмент документа обрабатывается как узел документа. |
| переменные | Если выражение содержит ссылку на переменную, ее значение будет найдено с помощью XPathVariableResolver, установленного с помощью setXPathVariableResolver(XPathVariableResolver resolver). Если разрешитель переменных не определен или разрешитель возвращает null для переменной, возникает XPathExpressionException. Значение переменной должно оставаться неизменным в ходе одного вычисления. |
| функции | Если выражение содержит ссылку на функцию, функция будет найдена с помощью XPathFunctionResolver, установленного с помощью setXPathFunctionResolver(XPathFunctionResolver resolver). Если разрешитель функций не определен или разрешитель возвращает null для функции, возникает XPathExpressionException. |
| QNames | QNames в выражении разрешаются относительно контекста пространства имен XPath, установленного с помощью setNamespaceContext(NamespaceContext nsContext). |
| результат | Результат вычисления выражения преобразуется в экземпляр требуемого типа возврата. Действительные типы возврата определены в XPathConstants. Преобразование в тип возврата выполняется согласно правилам преобразования XPath. |
Объект XPath не потокобезопасен и не реентерабелен. Другими словами, приложение должно гарантировать, что один объект XPath не используется из нескольких потоков одновременно, а также, что метод evaluate не вызывается рекурсивно во время вызова метода evaluate.
- Since:
- 1.5
- См. также:
- Язык путей XML (XPath) Версия 1.0
Методы
| Модификатор и тип | Метод и описание |
|---|---|
XPathExpression |
compile(String expression) Компилирует выражение XPath для последующего вычисления. |
String |
evaluate(String expression,
InputSource source) Вычисляет выражение XPath в контексте указанного |
Object |
evaluate(String expression,
InputSource source,
QName returnType) Вычисляет выражение XPath в контексте указанного |
String |
evaluate(String expression,
Object item) Вычисляет выражение XPath в указанном контексте и возвращает результат как |
Object |
evaluate(String expression,
Object item,
QName returnType) Вычисляет выражение |
NamespaceContext |
getNamespaceContext() Возвращает текущий контекст пространства имен. |
XPathFunctionResolver |
getXPathFunctionResolver() Возвращает текущий разрешитель функций. |
XPathVariableResolver |
getXPathVariableResolver() Возвращает текущего разрешителя переменных. |
void |
reset() Сбрасывает текущий |
void |
setNamespaceContext(NamespaceContext nsContext) Устанавливает контекст пространства имен. |
void |
setXPathFunctionResolver(XPathFunctionResolver resolver) Устанавливает разрешитель функций. |
void |
setXPathVariableResolver(XPathVariableResolver resolver) Устанавливает разрешитель переменных. |
Методы
reset
void reset()
Сбросить это XPath до его исходной конфигурации.
XPath сбрасывается в то же состояние, что и при создании с помощью XPathFactory.newXPath(). reset() предназначен для повторного использования существующих XPath , тем самым экономя ресурсы, связанные с созданием новых XPath.
Сброшенное XPath не гарантирует, что у него будут те же XPathFunctionResolver, XPathVariableResolver или NamespaceContext Object, например Object.equals(Object obj). Гарантируется, что у него будет функционально эквивалентный XPathFunctionResolver, XPathVariableResolver и NamespaceContext.
setXPathVariableResolver
void setXPathVariableResolver(XPathVariableResolver resolver)
Установить решатель переменных.
Возникает исключение NullPointerException, если resolver является null.
- Parameters:
-
resolver- Решатель переменных. - Throws:
-
NullPointerException- Еслиresolverявляетсяnull.
getXPathVariableResolver
XPathVariableResolver getXPathVariableResolver()
Возвращает текущего решателя переменных.
Возвращается null, если ни один решатель переменных не активен.
- Returns:
- Текущий решатель переменных.
setXPathFunctionResolver
void setXPathFunctionResolver(XPathFunctionResolver resolver)
Установить решатель функций.
Возникает исключение NullPointerException, если resolver является null.
- Parameters:
-
resolver- Решатель функций XPath. - Throws:
-
NullPointerException- Еслиresolverявляетсяnull.
getXPathFunctionResolver
XPathFunctionResolver getXPathFunctionResolver()
Возвращает текущего решателя функций.
Возвращается null, если ни один решатель функций не активен.
- Returns:
- Текущий решатель функций.
setNamespaceContext
void setNamespaceContext(NamespaceContext nsContext)
Установить контекст имен пространств.
Возникает исключение NullPointerException, если nsContext является null.
- Parameters:
-
nsContext- Используемый контекст имен пространств. - Throws:
-
NullPointerException- ЕслиnsContextявляетсяnull.
getNamespaceContext
NamespaceContext getNamespaceContext()
Возвратить текущий контекст имен пространств.
Возвращается null, если контекст имен пространств не задан.
- Returns:
- Текущий контекст имен пространств.
compile
XPathExpression compile(String expression)
throws XPathExpressionException Компилировать выражение XPath для последующей оценки.
Если expression содержит какие-либо XPathFunction, они должны быть доступны через XPathFunctionResolver. Будет выброшено исключение XPathExpressionException, если XPathFunction не может быть решено с помощью XPathFunctionResolver.
Если expression содержит какие-либо переменные, в этот момент будет использоваться активный XPathVariableResolver во время компиляции для их разрешения.
Если expression является null, будет выброшено исключение NullPointerException.
- Parameters:
-
expression- Выражение XPath. - Returns:
- Скомпилированное выражение XPath.
- Throws:
-
XPathExpressionException- Еслиexpressionне может быть скомпилировано. -
NullPointerException- Еслиexpressionявляетсяnull.
evaluate
Object evaluate(String expression,
Object item,
QName returnType)
throws XPathExpressionException Оценить выражение XPath в указанном контексте и вернуть результат в виде указанного типа.
См. Оценку выражений XPath для оценки элемента контекста, переменных, функций и QName разрешения и преобразования типа возвращаемого значения.
Если returnType не является одним из типов, определенных в XPathConstants ( NUMBER, STRING, BOOLEAN, NODE или NODESET), то будет выброшено исключение IllegalArgumentException.
Если для item предоставлено значение null, в качестве контекста будет использоваться пустой документ. Если expression или returnType являются null, будет выброшено исключение NullPointerException.
- Parameters:
-
expression- Выражение XPath. -
item- Начальный контекст (например, узел). -
returnType- Желаемый тип возвращаемого значения. - Returns:
- Результат вычисления выражения XPath в виде
ObjectreturnType. - Throws:
-
XPathExpressionException- Еслиexpressionне может быть вычислен. -
IllegalArgumentException- ЕслиreturnTypeне является одним из типов, определенных вXPathConstants. -
NullPointerException- ЕслиexpressionилиreturnTypeявляетсяnull.
evaluate
String evaluate(String expression,
Object item)
throws XPathExpressionException Вычислить выражение XPath в заданном контексте и вернуть результат как String.
Этот метод вызывает evaluate(String expression, Object item, QName returnType) с returnType XPathConstants.STRING.
См. Оценку выражений XPath для оценки элемента контекста, переменных, функций и разрешения QName и преобразования типа возвращаемого значения.
Если для item предоставлено значение null, в качестве контекста будет использоваться пустой документ. Если expression является null, будет выброшено исключение NullPointerException.
- Parameters:
-
expression- Выражение XPath. -
item- Начальный контекст (например, узел). - Returns:
- Результат вычисления выражения и преобразования результата в
String. - Throws:
-
XPathExpressionException- Еслиexpressionне может быть вычислен. -
NullPointerException- Еслиexpressionявляетсяnull.
evaluate
Object evaluate(String expression,
InputSource source,
QName returnType)
throws XPathExpressionException Оценить выражение XPath в контексте указанного InputSource и вернуть результат в виде указанного типа.
Этот метод создает модель данных для InputSource и вызывает evaluate(String expression, Object item, QName returnType) на объекте результирующего документа.
См. Оценку выражений XPath для оценки элемента контекста, переменных, функций и разрешения QName и преобразования типа возвращаемого значения.
Если returnType не является одним из типов, определенных в XPathConstants, то будет выброшено исключение IllegalArgumentException.
Если expression, source или returnType является null, будет выброшено исключение NullPointerException.
- Parameters:
-
expression- Выражение XPath. -
source- Источник данных документа для оценки. -
returnType- Желаемый тип возвращаемого значения. - Returns:
- Результат вычисления выражения.
- Throws:
-
XPathExpressionException- Если выражение не может быть вычислено. -
IllegalArgumentException- ЕслиreturnTypeне является одним из типов, определенных вXPathConstants. -
NullPointerException- Еслиexpression,sourceилиreturnTypeявляетсяnull.
evaluate
String evaluate(String expression,
InputSource source)
throws XPathExpressionException Вычислить выражение XPath в контексте указанного InputSource и вернуть результат как String.
Этот метод вызывает evaluate(String expression, InputSource source, QName returnType) с returnType XPathConstants.STRING.
См. Оценку выражений XPath для оценки элемента контекста, переменных, функций и разрешения QName и преобразования типа возвращаемого значения.
Если expression или source является null, будет выброшено исключение NullPointerException.
- Parameters:
-
expression- Выражение XPath. -
source- Источник данных документа для оценки. - Returns:
- Результат вычисления выражения и преобразования результата в
String. - Throws:
-
XPathExpressionException- Если выражение не может быть вычислено. -
NullPointerException- Еслиexpressionилиsourceявляетсяnull.
© 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.