-
public interface XPathExpression
XPathExpression
提供对编译的XPath表达式的访问。 XPath评估受下表中描述的因素的影响。 Evaluation of XPath Expressions Factor Behavior context The type of the context is implementation-dependent. If the value is null, the operation must have no dependency on the context, otherwise an XPathExpressionException will be thrown. For the purposes of evaluating XPath expressions, a DocumentFragment is treated like a Document node. variables If the expression contains a variable reference, its value will be found through theXPathVariableResolver
. AnXPathExpressionException
is raised if the variable resolver is undefined or the resolver returnsnull
for the variable. The value of a variable must be immutable through the course of any single evaluation. functions If the expression contains a function reference, the function will be found through theXPathFunctionResolver
. AnXPathExpressionException
is raised if the function resolver is undefined or the function resolver returnsnull
for the function. QNames QNames in the expression are resolved against the XPath namespace context. result This result of evaluating an expression is converted to an instance of the desired return type. Valid return types are defined inXPathConstants
. Conversion to the return type follows XPath conversion rules.XPath表达式不是线程安全的,不可重入。 换句话说,应用程序有责任确保在任何给定时间从多个线程中使用一个2708606942661对象,而在调用
evaluate
方法时,应用程序可能不递归调用evaluate
方法。- 从以下版本开始:
- 1.5
- 另请参见:
- XML Path Language (XPath) Version 1.0, Expressions
-
-
方法摘要
所有方法 接口方法 抽象方法 Default Methods Modifier and Type 方法 描述 String
evaluate(Object item)
在指定的上下文中评估编译的XPath表达式,并将结果作为String
返回。Object
evaluate(Object item, QName returnType)
在指定的上下文中评估编译的XPath表达式,并将结果作为指定的类型返回。String
evaluate(InputSource source)
在指定的InputSource
的上下文中评估编译的XPath表达式,并将结果作为String
返回。Object
evaluate(InputSource source, QName returnType)
在指定的InputSource
的上下文中评估编译的XPath表达式,并将结果作为指定的类型返回。default XPathEvaluationResult<?>
evaluateExpression(Object item)
在指定的上下文中评估编译的XPath表达式。default <T> T
evaluateExpression(Object item, Class<T> type)
在指定的上下文中评估编译的XPath表达式,并返回具有通过class type
指定的类型的结果。default XPathEvaluationResult<?>
evaluateExpression(InputSource source)
在指定的上下文中评估编译的XPath表达式。default <T> T
evaluateExpression(InputSource source, Class<T> type)
在指定的上下文中评估编译的XPath表达式,并返回结果,其类型通过class type
指定
-
-
-
方法详细信息
-
evaluate
Object evaluate(Object item, QName returnType) throws XPathExpressionException
在指定的上下文中评估编译的XPath表达式,并将结果作为指定的类型返回。有关上下文项目评估,变量,函数和QName解析和返回类型转换,请参见Evaluation of XPath Expressions 。
参数
item
表示将运行XPath表达式的上下文。 上下文的类型取决于实现。 如果值为null
,则操作必须与上下文无关,否则将抛出XPathExpressionException异常。- Implementation Note:
-
上下文的类型通常为
Node
。 - 参数
-
item
- 将评估XPath表达式的上下文。 -
returnType
- 预期由XPath表达式返回的结果类型。 - 结果
-
Object
是评估表达式并将结果转换为returnType
的结果。 - 异常
-
XPathExpressionException
- 如果表达式无法评估。 -
IllegalArgumentException
-如果returnType
不在定义的类型之一XPathConstants
。 -
NullPointerException
- 如果returnType
是null
。
-
evaluate
String evaluate(Object item) throws XPathExpressionException
在指定上下文中评估编译的XPath表达式,并将结果作为String
返回。该方法调用
evaluate(Object item, QName returnType)
,其中returnType
为XPathConstants.STRING
。有关上下文项目评估,变量,函数和QName解析和返回类型转换,请参阅Evaluation of XPath Expressions 。
参数
item
表示将运行XPath表达式的上下文。 上下文的类型取决于实现。 如果值为null
,操作必须与上下文无关,否则将抛出XPathExpressionException异常。- Implementation Note:
-
上下文的类型通常为
Node
。 - 参数
-
item
- 将评估XPath表达式的上下文。 - 结果
-
将XPath表达式评估为
String
。 - 异常
-
XPathExpressionException
- 如果表达式无法评估。
-
evaluate
Object evaluate(InputSource source, QName returnType) throws XPathExpressionException
在指定的InputSource
的上下文中评估编译的XPath表达式,并将结果作为指定的类型返回。此方法构建
InputSource
的数据模型,并在生成的文档对象上调用evaluate(Object item, QName returnType)
。有关上下文项目评估,变量,函数和QName解析和返回类型转换,请参见Evaluation of XPath Expressions 。
如果
returnType
不在定义的类型之一XPathConstants
,那么IllegalArgumentException
被抛出。如果
source
或returnType
为null
,则抛出NullPointerException
。- 参数
-
source
- 要评估的文件的InputSource
。 -
returnType
- 所需的返回类型。 - 结果
-
Object
是评估表达式并将结果转换为returnType
的结果。 - 异常
-
XPathExpressionException
- 如果表达式无法评估。 -
IllegalArgumentException
-如果returnType
不在定义的类型之一XPathConstants
。 -
NullPointerException
- 如果source or returnType
是null
。
-
evaluate
String evaluate(InputSource source) throws XPathExpressionException
在指定的InputSource
的上下文中评估编译的XPath表达式,并将结果作为String
返回。这个方法调用
evaluate(InputSource source, QName returnType)
,一个returnType
的XPathConstants.STRING
。有关上下文项目评估,变量,函数和QName解析和返回类型转换,请参见Evaluation of XPath Expressions 。
如果
source
是null
,那么抛出一个NullPointerException
。- 参数
-
source
- 要评估的文件的InputSource
。 - 结果
-
String
是评估表达式并将结果转换为String
的结果。 - 异常
-
XPathExpressionException
- 如果表达式无法评估。 -
NullPointerException
- 如果source
是null
。
-
evaluateExpression
default <T> T evaluateExpression(Object item, Class<T> type) throws XPathExpressionException
评估在指定的上下文中编译的XPath表达式,并返回结果与通过class type
指定的类型。参数
item
表示将运行XPath表达式的上下文。 上下文的类型取决于实现。 如果值为null
,则操作必须与上下文无关,否则将抛出XPathExpressionException异常。- 实现要求:
-
XPath API中的默认实现相当于:
(T)evaluate(item, XPathEvaluationResult.XPathResultType.getQNameType(type));
evaluate
方法不支持ANY
类型,因此指定XPathEvaluationResult类型将导致IllegalArgumentException。 支持ANY
类型的任何实现都必须覆盖此方法。 - Implementation Note:
-
上下文的类型通常为
Node
。 - 参数类型
-
T
- XPath表达式返回的类类型。 - 参数
-
item
- 将评估XPath表达式的上下文。 -
type
- 预期由XPath表达式返回的类类型。 - 结果
- 表达式的评估结果。
- 异常
-
XPathExpressionException
- 如果表达式无法评估。 -
IllegalArgumentException
- 如果type
不是与XPathResultType
中定义的类型对应的类型,或者XPathEvaluationResult被指定为类型,但是支持ANY
类型的实现不可用。 -
NullPointerException
- 如果type
是null
。 - 从以下版本开始:
- 9
-
evaluateExpression
default XPathEvaluationResult<?> evaluateExpression(Object item) throws XPathExpressionException
在指定的上下文中评估编译的XPath表达式。 这相当于打电话evaluateExpression(Object item, Class type)
,类型为XPathEvaluationResult
:evaluateExpression(item, XPathEvaluationResult.class);
参数
item
表示将运行XPath表达式的上下文。 上下文的类型取决于实现。 如果值为null
,则操作必须与上下文无关,否则将抛出XPathExpressionException异常。- 实现要求:
-
XPath API中的默认实现相当于:
evaluateExpression(item, XPathEvaluationResult.class);
evaluate
方法不支持ANY
类型,因此此方法的默认实现将始终抛出IllegalArgumentException 异常 。 因此,支持ANY
类型的任何实现必须覆盖此方法。 - Implementation Note:
-
上下文的类型通常为
Node
。 - 参数
-
item
- 将评估XPath表达式的上下文。 - 结果
- 表达式的评估结果。
- 异常
-
XPathExpressionException
- 如果表达式无法评估。 -
IllegalArgumentException
- 如果该方法的实现不支持ANY
类型。 - 从以下版本开始:
- 9
-
evaluateExpression
default <T> T evaluateExpression(InputSource source, Class<T> type) throws XPathExpressionException
评估在指定上下文中编译的XPath表达式,并返回结果,其类型通过class type
指定此方法构建
InputSource
的数据模型,并在生成的文档对象上调用evaluateExpression(Object item, Class type)
。默认情况下,JDK的数据模型为
Document
。- 实现要求:
-
XPath API中的默认实现相当于:
(T)evaluate(source, XPathEvaluationResult.XPathResultType.getQNameType(type));
evaluate
方法不支持ANY
类型,因此指定XPathEvaluationResult类型将导致IllegalArgumentException。 任何支持ANY
类型的实现都必须覆盖此方法。 - 参数类型
-
T
- XPath表达式返回的类类型。 - 参数
-
source
- 要评估的文件的InputSource
。 -
type
- 预期由XPath表达式返回的类类型。 - 结果
- 表达式的评估结果。
- 异常
-
XPathExpressionException
- 如果表达式无法评估。 -
IllegalArgumentException
- 如果type
不是与XPathResultType
中定义的类型相对应的类型,或者XPathEvaluationResult被指定为类型,但是支持ANY
类型的实现不可用。 -
NullPointerException
- 如果source or type
是null
。 - 从以下版本开始:
- 9
-
evaluateExpression
default XPathEvaluationResult<?> evaluateExpression(InputSource source) throws XPathExpressionException
在指定的上下文中评估编译的XPath表达式。 这相当于打电话evaluateExpression(InputSource source, Class type)
,类型为XPathEvaluationResult
:evaluateExpression(source, XPathEvaluationResult.class);
- 实现要求:
-
XPath API中的默认实现相当于:
(XPathEvaluationResult)evaluateExpression(source, XPathEvaluationResult.class);
evaluate
方法不支持ANY
类型,因此此方法的默认实现将始终会引发IllegalArgumentException。 因此,支持ANY
类型的任何实现必须覆盖此方法。 - 参数
-
source
- 要评估的文件的InputSource
。 - 结果
- 表达式的评估结果。
- 异常
-
XPathExpressionException
- 如果表达式无法评估。 -
IllegalArgumentException
- 如果这种方法的实现不支持ANY
类型。 -
NullPointerException
- 如果source
为null
。 - 从以下版本开始:
- 9
-
-