public interface XPath
XPath
提供对XPath评估环境和表达式的访问。
XPathVariableResolver
set with setXPathVariableResolver(XPathVariableResolver resolver)
. An XPathExpressionException
is raised if the variable resolver is undefined or the resolver returns null
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 the XPathFunctionResolver
set with setXPathFunctionResolver(XPathFunctionResolver resolver)
. An XPathExpressionException
is raised if the function resolver is undefined or the function resolver returns null
for the function. QNames QNames in the expression are resolved against the XPath namespace context set with setNamespaceContext(NamespaceContext nsContext)
. result This result of evaluating an expression is converted to an instance of the desired return type. Valid return types are defined in XPathConstants
. Conversion to the return type follows XPath conversion rules.
XPath对象不是线程安全的,不可重入。 换句话说,应用程序的责任是确保在任何给定的时间从一个以上的线程中不使用一个XPath
对象,并且当调用evaluate
方法时,应用程序可能不会递归调用evaluate
方法。
Modifier and Type | Method and Description |
---|---|
XPathExpression |
compile(String expression)
编译XPath表达式供以后评估。
|
String |
evaluate(String expression, InputSource source)
计算指定的上下文中的XPath表达式
InputSource 并返回结果作为
String 。
|
Object |
evaluate(String expression, InputSource source, QName returnType)
计算指定的上下文中的XPath表达式
InputSource 并返回其结果作为指定的类型。
|
String |
evaluate(String expression, Object item)
评估指定上下文中的XPath表达式,并将结果作为
String 。
|
Object |
evaluate(String expression, Object item, QName returnType)
在指定的上下文中评估一个
XPath 表达式,并将结果作为指定的类型返回。
|
NamespaceContext |
getNamespaceContext()
返回当前命名空间上下文。
|
XPathFunctionResolver |
getXPathFunctionResolver()
返回当前函数解析器。
|
XPathVariableResolver |
getXPathVariableResolver()
返回当前变量解析器。
|
void |
reset()
将此
XPath 重置为原始配置。
|
void |
setNamespaceContext(NamespaceContext nsContext)
建立命名空间上下文。
|
void |
setXPathFunctionResolver(XPathFunctionResolver resolver)
建立一个函数解析器。
|
void |
setXPathVariableResolver(XPathVariableResolver resolver)
建立变量解析器。
|
void reset()
将此XPath
重置为原始配置。
XPath
被重置为与使用XPathFactory.newXPath()
创建时相同的状态。 reset()
旨在允许现有的XPath
s的重用,从而节省与创建新的XPath
的相关资源。
复位XPath
不保证具有相同XPathFunctionResolver
, XPathVariableResolver
或NamespaceContext
Object
S,如Object.equals(Object obj)
。 但保证具有功能相等XPathFunctionResolver
, XPathVariableResolver
和NamespaceContext
。
void setXPathVariableResolver(XPathVariableResolver resolver)
建立变量解析器。
一个NullPointerException
如果抛出resolver
是null
。
resolver
- 可变解算器。
NullPointerException
- 如果
resolver
是
null
。
XPathVariableResolver getXPathVariableResolver()
返回当前变量解析器。
null
在无变量解析器中返回有效。
void setXPathFunctionResolver(XPathFunctionResolver resolver)
建立一个函数解析器。
一个NullPointerException
如果抛出resolver
是null
。
resolver
- XPath函数解析器。
NullPointerException
- 如果
resolver
是
null
。
XPathFunctionResolver getXPathFunctionResolver()
返回当前函数解析器。
null
返回没有功能解析器是有效的。
void setNamespaceContext(NamespaceContext nsContext)
建立命名空间上下文。
一个NullPointerException
如果抛出nsContext
是null
。
nsContext
- 要使用的命名空间上下文。
NullPointerException
- 如果
nsContext
是
null
。
NamespaceContext getNamespaceContext()
返回当前命名空间上下文。
null
返回的没有命名空间上下文是有效的。
XPathExpression compile(String expression) throws XPathExpressionException
编译XPath表达式供以后评估。
如果expression
包含任何XPathFunction
s,则必须通过XPathFunctionResolver
可用 。 XPathExpressionException
将被抛出,如果XPathFunction
不能用XPathFunctionResolver
被XPathFunctionResolver
。
如果expression
包含任何变量,则在编译时使用的XPathVariableResolver
将用于解析它们。
如果expression
是null
,则会抛出一个NullPointerException
。
expression
- XPath表达式。
XPathExpressionException
- 如果
expression
无法编译。
NullPointerException
- 如果
expression
是
null
。
Object evaluate(String expression, Object item, QName returnType) throws XPathExpressionException
评估一个XPath
中指定的上下文表达式并返回结果作为指定的类型。
参见Evaluation of XPath Expressions的上下文项目评估,变量,函数和QName
分辨率和返回类型转换。
如果returnType
不在定义的类型的一个XPathConstants
( NUMBER
, STRING
, BOOLEAN
, NODE
或NODESET
),那么一个IllegalArgumentException
被抛出。
如果null
被提供用于值item
,一个空文档将被用于的上下文。 如果expression
或returnType
是null
,则抛出一个NullPointerException
。
expression
- XPath表达式。
item
- 起始上下文(例如一个节点)。
returnType
- 所需的返回类型。
Object
的
returnType
。
XPathExpressionException
-如果
expression
无法评估。
IllegalArgumentException
- 如果returnType
不是returnType
中定义的类型之一 。
NullPointerException
- 如果
expression
或
returnType
是
null
。
String evaluate(String expression, Object item) throws XPathExpressionException
评估指定上下文中的XPath表达式,并将结果作为String
。
此方法调用evaluate(String expression, Object item, QName returnType)
与returnType
的XPathConstants.STRING
。
见Evaluation of XPath Expressions上下文项计算,变量,函数和QName解析,以及返回类型转换。
如果null
被提供用于值item
,一个空文档将被用于的上下文。 如果expression
是null
,那么会抛出一个NullPointerException
。
expression
- XPath表达式。
item
- 起始上下文(例如一个节点)。
String
是评估表达式并将结果转换为
String
的结果。
XPathExpressionException
- 如果
expression
无法评估。
NullPointerException
- 如果
expression
是
null
。
Object evaluate(String expression, InputSource source, QName returnType) throws XPathExpressionException
计算指定的上下文中的XPath表达式InputSource
并返回其结果作为指定的类型。
此方法为InputSource
构建数据模型,并在结果文档对象上调用evaluate(String expression, Object item, QName returnType)
。
见Evaluation of XPath Expressions上下文项计算,变量,函数和QName解析,以及返回类型转换。
如果returnType
不是returnType
中定义的类型之一 ,则抛出一个IllegalArgumentException
。
如果expression
, source
或returnType
是null
,然后NullPointerException
异常。
expression
- XPath表达式。
source
- 要评估的文档的输入源。
returnType
- 所需的返回类型。
Object
表达式的结果的Object。
XPathExpressionException
- 如果无法评估表达式。
IllegalArgumentException
- 如果returnType
不是returnType
中定义的类型之一 。
NullPointerException
-如果
expression
,
source
或
returnType
是
null
。
String evaluate(String expression, InputSource source) throws XPathExpressionException
计算指定的上下文中的XPath表达式InputSource
并返回结果作为String
。
此方法调用evaluate(String expression, InputSource source, QName returnType)
与returnType
的XPathConstants.STRING
。
见Evaluation of XPath Expressions上下文项计算,变量,函数和QName解析,以及返回类型转换。
如果expression
或source
为null
,则抛出NullPointerException
。
expression
- XPath表达式。
source
- 评估文件的
InputSource
。
String
是评估表达式并将结果转换为
String
的结果。
XPathExpressionException
- 如果表达式无法评估。
NullPointerException
- 如果
expression
或
source
是
null
。