XPathFactory实例可用于创建XPath对象。
查看newInstance(String uri)以获取查找机制。
XPathFactory类不是线程安全的。换句话说,应用程序有责任确保在任何给定时刻最多只有一个线程在使用XPathFactory对象。鼓励实现将方法标记为synchronized以保护自己免受错误客户端的影响。
XPathFactory不可重入。在调用newInstance方法之一时,应用程序不得尝试从同一线程递归调用newInstance方法。
- 自版本:
- 1.5
-
Field Summary
Fields -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotected受保护的构造函数应使用newInstance()或newInstance(String uri)或newInstance(String uri, String factoryClassName, ClassLoader classLoader)来创建XPathFactory的新实例。 -
Method Summary
Modifier and TypeMethodDescriptionabstract booleangetFeature(String name) 获取指定特性的状态。getProperty(String name) 返回指定属性的值。abstract booleanisObjectModelSupported(String objectModel) 此XPathFactory是否支持指定的对象模型?static XPathFactory创建内置系统默认实现的XPathFactory的新实例。static XPathFactory使用默认对象模型DEFAULT_OBJECT_MODEL_URI(W3C DOM)获取新的XPathFactory实例。static XPathFactorynewInstance(String uri) 使用指定对象模型获取新的XPathFactory实例。static XPathFactorynewInstance(String uri, String factoryClassName, ClassLoader classLoader) 从工厂类名获取XPathFactory的新实例。abstract XPathnewXPath()在实例化XPathFactory时确定的基础对象模型上返回新的XPath。abstract voidsetFeature(String name, boolean value) 为此XPathFactory设置一个特性。voidsetProperty(String name, String value) 为此XPathFactory设置一个属性。abstract void建立默认函数解析器。abstract void建立默认变量解析器。
-
Field Details
-
DEFAULT_PROPERTY_NAME
符合JAXP规范的默认属性名称。
- 参见:
-
DEFAULT_OBJECT_MODEL_URI
默认对象模型URI。
- 参见:
-
-
Constructor Details
-
XPathFactory
protected XPathFactory()受保护的构造函数应使用
newInstance()或newInstance(String uri)或newInstance(String uri, String factoryClassName, ClassLoader classLoader)来创建XPathFactory的新实例。
-
-
Method Details
-
newDefaultInstance
创建内置系统默认实现的XPathFactory的新实例。- 实现要求:
-
内置系统默认实现的
XPathFactory仅需要支持默认对象模型,即W3C DOM,但可以支持其他对象模型。 - 返回:
-
内置系统默认实现的
XPathFactory的新实例。 - 自版本:
- 9
-
newInstance
使用默认对象模型
DEFAULT_OBJECT_MODEL_URI(W3C DOM)获取新的XPathFactory实例。此方法在功能上等同于:
newInstance(DEFAULT_OBJECT_MODEL_URI)
由于W3C DOM的实现始终可用,因此此方法永远不会失败。
- 返回:
-
XPathFactory的实例。 - 抛出:
-
RuntimeException- 当为默认对象模型创建XPathFactory时发生故障时。
-
newInstance
使用指定对象模型获取新的
XPathFactory实例。此方法使用JAXP查找机制来确定和加载支持指定对象模型的XPathFactory实现。故障排除提示:
查看
Properties.load(java.io.InputStream)以了解属性文件的解析方式。特别是,在属性文件中冒号':'需要转义,因此确保URI在其中被正确转义。例如:http\://java.sun.com/jaxp/xpath/dom=org.acme.DomXPathFactory
- 参数:
-
uri- 标识基础对象模型。规范仅为W3C DOM的URIDEFAULT_OBJECT_MODEL_URI,http://java.sun.com/jaxp/xpath/dom,org.w3c.dom包定义,实现可以自由引入其他URI以支持其他对象模型。 - 返回:
-
XPathFactory的实例。 - 抛出:
-
XPathFactoryConfigurationException- 如果指定的对象模型不可用,或存在配置错误。 -
NullPointerException- 如果uri为null。 -
IllegalArgumentException- 如果uri为null或uri.length() == 0。
-
newInstance
public static XPathFactory newInstance(String uri, String factoryClassName, ClassLoader classLoader) throws XPathFactoryConfigurationException 从工厂类名获取
XPathFactory的新实例。如果指定的工厂类支持指定的对象模型,则返回XPathFactory。当类路径中存在多个提供程序时,此函数很有用。它使应用程序具有更多控制权,因为可以指定应加载哪个提供程序。故障排除提示
设置
jaxp.debug系统属性将导致此方法向System.err打印大量关于其操作和查看位置的调试消息。如果遇到问题,请尝试:
java -Djaxp.debug=1 YourProgram ....
- 参数:
-
uri- 标识基础对象模型。规范仅为W3C DOM的URIDEFAULT_OBJECT_MODEL_URI,http://java.sun.com/jaxp/xpath/dom,org.w3c.dom包定义,实现可以自由引入其他URI以支持其他对象模型。 -
factoryClassName- 提供javax.xml.xpath.XPathFactory实现的完全限定工厂类名。 -
classLoader- 用于加载工厂类的ClassLoader。如果为null,则使用当前Thread的上下文类加载器来加载工厂类。 - 返回:
-
XPathFactory的新实例 - 抛出:
-
XPathFactoryConfigurationException- 如果factoryClassName为null,或无法加载、实例化工厂类,或工厂类不支持uri参数中指定的对象模型。 -
NullPointerException- 如果uri为null。 -
IllegalArgumentException- 如果uri为null或uri.length() == 0。 - 自版本:
- 1.6
- 参见:
-
isObjectModelSupported
此
XPathFactory是否支持指定的对象模型?- 参数:
-
objectModel- 指定返回的XPathFactory将理解的对象模型。 - 返回:
-
如果
XPathFactory支持objectModel,则返回true,否则返回false。 - 抛出:
-
NullPointerException- 如果objectModel为null。 -
IllegalArgumentException- 如果objectModel.length() == 0。
-
setFeature
public abstract void setFeature(String name, boolean value) throws XPathFactoryConfigurationException 设置此XPathFactory的特性。该特性适用于XPathFactory创建的XPath对象。它不会影响已经创建的XPath对象。特性名称是完全限定的
URI。实现可以定义自己的特性。如果此XPathFactory或其创建的XPath对象不支持该特性,则会抛出一个XPathFactoryConfigurationException。XPathFactory可能会公开一个特性值,但无法更改其状态。所有实现都必须支持
XMLConstants.FEATURE_SECURE_PROCESSING特性。当特性为true时,对外部函数的任何引用都将导致错误。在这种情况下,实现不得调用XPathFunctionResolver,并且必须抛出一个XPathFunctionException。- 参数:
-
name- 特性名称。 -
value- 特性状态为true或false。 - 抛出:
-
XPathFactoryConfigurationException- 如果此XPathFactory或其创建的XPath对象不支持此特性。 -
NullPointerException- 如果name为null。
-
getFeature
获取指定特性的状态。
特性名称是完全限定的
URI。实现可以定义自己的特性。如果此XPathFactory或其创建的XPath对象不支持该特性,则会抛出一个XPathFactoryConfigurationException。XPathFactory可能会公开一个特性值,但无法更改其状态。- 参数:
-
name- 特性名称。 - 返回:
- 特性的状态。
- 抛出:
-
XPathFactoryConfigurationException- 如果此XPathFactory或其创建的XPath对象不支持此特性。 -
NullPointerException- 如果name为null。
-
setXPathVariableResolver
建立一个默认的变量解析器。
从此工厂构造的任何
XPath对象将默认使用指定的解析器。如果
resolver为null,则会抛出NullPointerException。- 参数:
-
resolver- 变量解析器。 - 抛出:
-
NullPointerException- 如果resolver为null。
-
setXPathFunctionResolver
建立一个默认的函数解析器。
从此工厂构造的任何
XPath对象将默认使用指定的解析器。如果
resolver为null,则会抛出NullPointerException。- 参数:
-
resolver- XPath函数解析器。 - 抛出:
-
NullPointerException- 如果resolver为null。
-
newXPath
使用实例化
XPathFactory时确定的底层对象模型返回一个新的XPath。- 返回:
-
XPath的新实例。
-
setProperty
设置此XPathFactory的属性。该属性适用于XPathFactory创建的XPath对象。它不会影响已经创建的XPath对象。属性可以在此
XPathFactory中定义,也可以由底层实现定义。- 实现要求:
-
默认实现会抛出
UnsupportedOperationException。 - 参数:
-
name- 属性名称 -
value- 属性的值 - 抛出:
-
IllegalArgumentException- 如果属性名称未被识别,或值无法分配 -
UnsupportedOperationException- 如果实现不支持该方法 -
NullPointerException- 如果name为null - 自:
- 18
-
getProperty
返回指定属性的值。- 实现要求:
-
默认实现会抛出
UnsupportedOperationException。 - 参数:
-
name- 属性名称 - 返回:
- 属性的值。
- 抛出:
-
IllegalArgumentException- 如果属性名称未被识别 -
UnsupportedOperationException- 如果实现不支持该方法 -
NullPointerException- 如果name为null - 自:
- 18
-