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 。
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.