public abstract class XPathFactory extends Object
一个XPathFactory
实例可以用来创建XPath
对象。
请参阅newInstance(String uri)
查找机制。
XPathFactory
类不是线程安全的。 换句话说,应用程序有责任确保在任何给定时刻最多只有一个线程使用XPathFactory
对象。 鼓励实施方法标记为synchronized
以保护自己免受破坏的客户端。
XPathFactory
没有进入。 虽然正在调用newInstance
方法之一,但newInstance
程序可能不会尝试递归地调用newInstance
方法,即使是从同一个线程。
Modifier and Type | Field and Description |
---|---|
static String |
DEFAULT_OBJECT_MODEL_URI
默认对象模型URI。
|
static String |
DEFAULT_PROPERTY_NAME
根据JAXP规范的默认属性名称。
|
Modifier | Constructor and Description |
---|---|
protected |
XPathFactory()
应该使用受保护的构造函数作为
newInstance() 或
newInstance(String uri) 或
newInstance(String uri, String factoryClassName, ClassLoader classLoader) 创建一个新的
XPathFactory 实例。
|
Modifier and Type | Method and Description |
---|---|
abstract boolean |
getFeature(String name)
获取命名功能的状态。
|
abstract boolean |
isObjectModelSupported(String objectModel)
这个
XPathFactory 是否支持指定的对象模型?
|
static XPathFactory |
newInstance()
使用默认对象模型
DEFAULT_OBJECT_MODEL_URI ,W3C DOM获取一个新的
XPathFactory 实例。
|
static XPathFactory |
newInstance(String uri)
使用指定的对象模型获取新的
XPathFactory 实例。
|
static XPathFactory |
newInstance(String uri, String factoryClassName, ClassLoader classLoader)
从工厂类名称获取一个新的实例
XPathFactory 。
|
abstract XPath |
newXPath()
返回一个新的
XPath 当使用所确定的基础对象模型
XPathFactory 被实例化。
|
abstract void |
setFeature(String name, boolean value)
为这个工厂创建的
XPathFactory 和
XPath 设置了一个功能。
|
abstract void |
setXPathFunctionResolver(XPathFunctionResolver resolver)
建立默认函数解析器。
|
abstract void |
setXPathVariableResolver(XPathVariableResolver resolver)
建立一个默认变量解析器。
|
public static final String DEFAULT_PROPERTY_NAME
根据JAXP规范的默认属性名称。
public static final String DEFAULT_OBJECT_MODEL_URI
默认对象模型URI。
protected XPathFactory()
应该使用受保护的构造函数作为newInstance()
或newInstance(String uri)
或newInstance(String uri, String factoryClassName, ClassLoader classLoader)
来创建一个新的XPathFactory
实例。
public static XPathFactory newInstance()
使用默认对象模型DEFAULT_OBJECT_MODEL_URI
,W3C DOM获取新的XPathFactory
实例。
此方法在功能上相当于:
newInstance(DEFAULT_OBJECT_MODEL_URI)
由于W3C DOM的实现始终可用,因此该方法永远不会失败。
XPathFactory
。
RuntimeException
- 为默认对象模型创建
XPathFactory
失败。
public static XPathFactory newInstance(String uri) throws XPathFactoryConfigurationException
使用指定的对象模型获取新的XPathFactory
实例。
要找到一个XPathFactory
对象,该方法按照以下顺序查看以下位置,其中“类加载器”是指上下文类加载器:
DEFAULT_PROPERTY_NAME
+“:uri”存在,其中uri是此方法的参数,则将其值作为类名读取。 该方法将尝试通过使用类加载器来创建此类的新实例,并且如果成功创建则返回此类。 ServiceLoader
类定义的服务提供商加载工具尝试使用default loading mechanism查找和加载服务的实现 :服务提供商加载工具将使用current thread's context class loader尝试加载服务。 如果上下文类加载器为null, 那么将使用system class loader 。 isObjectModelSupported(String objectModel)
。 第一个服务提供商发现支持指定的对象模型被返回。 ServiceConfigurationError
的XPathFactoryConfigurationException
将被抛出。 XPathFactory
位于一个平台特定的方式。 W3C DOM必须有XPathFactory平台,即DEFAULT_OBJECT_MODEL_URI
。 如果一切都失败,将会抛出一个XPathFactoryConfigurationException
。
故障排除提示:
有关如何解析属性文件,请参阅Properties.load(java.io.InputStream)
。 特别地,冒号':'需要在属性文件中进行转义,因此请确保在其中正确地转义了URI。 例如:
http\://java.sun.com/jaxp/xpath/dom=org.acme.DomXPathFactory
uri
- 标识底层对象模型。
该规范仅定义W3C DOM的URI DEFAULT_OBJECT_MODEL_URI
,http://java.sun.com/jaxp/xpath/dom , http://java.sun.com/jaxp/xpath/dom
包,并且实现可以自由地为其他对象模型引入其他URI。
XPathFactory
。
XPathFactoryConfigurationException
- 如果指定的对象模型不可用,或者是否存在配置错误。
NullPointerException
- 如果
uri
是
null
。
IllegalArgumentException
- 如果
uri
是
null
或
uri.length() == 0
。
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的URI DEFAULT_OBJECT_MODEL_URI
,http://java.sun.com/jaxp/xpath/dom , http://java.sun.com/jaxp/xpath/dom
包,实现可以自由地为其他对象模型引入其他URI。
factoryClassName
-完全限定工厂类名称,提供实施
javax.xml.xpath.XPathFactory
。
classLoader
- ClassLoader
用于加载工厂类。
如果null
当前的Thread
的上下文classLoader用于加载工厂类。
XPathFactory
XPathFactoryConfigurationException
-如果
factoryClassName
是
null
,或工厂类不能被加载,实例化或工厂类不支持指定的对象模型
uri
参数。
NullPointerException
- 如果
uri
是
null
。
IllegalArgumentException
- 如果
uri
是
null
或
uri.length() == 0
。
newInstance()
,
newInstance(String uri)
public abstract boolean isObjectModelSupported(String objectModel)
这个XPathFactory
是否支持指定的对象模型?
objectModel
- 指定返回的
XPathFactory
将理解的对象模型。
true
如果
XPathFactory
支持
objectModel
,否则
false
。
NullPointerException
- 如果
objectModel
是
null
。
IllegalArgumentException
- 如果
objectModel.length() == 0
。
public abstract void setFeature(String name, boolean value) throws XPathFactoryConfigurationException
为这个工厂创建的XPathFactory
和XPath
设置一个功能。
功能名称完全符合URI
s。 实现可以定义自己的特征。 如果这个XPathFactory
或其创建的XPath
无法支持该功能,则会抛出一个XPathFactoryConfigurationException
。 XPathFactory
可能会显示一个特征值,但无法更改其状态。
所有实现都需要支持XMLConstants.FEATURE_SECURE_PROCESSING
功能。 当功能为true
时,对外部功能的引用是错误的。 在这些条件下,执行不能调用XPathFunctionResolver
并且必须抛出一个XPathFunctionException
。
name
- 功能名称。
value
- 是功能状态
true
或
false
。
XPathFactoryConfigurationException
- 如果这
XPathFactory
或其创建的
XPath
不能支持此功能。
NullPointerException
- 如果
name
是
null
。
public abstract boolean getFeature(String name) throws XPathFactoryConfigurationException
获取命名功能的状态。
功能名称完全符合URI
s。 实现可以定义自己的特征。 如果这XPathFactory
或其创建的XPath
无法支持该功能,则会抛出一个XPathFactoryConfigurationException
。 XPathFactory
可以显示一个特征值,但不能改变其状态。
name
- 功能名称。
XPathFactoryConfigurationException
- 如果这
XPathFactory
或其创建的
XPath
不能支持此功能。
NullPointerException
- 如果
name
是
null
。
public abstract void setXPathVariableResolver(XPathVariableResolver resolver)
建立一个默认变量解析器。
任何由此工厂XPath
对象默认使用指定的解析器。
一个NullPointerException
如果抛出resolver
是null
。
resolver
- 可变解算器。
NullPointerException
- 如果
resolver
是
null
。
public abstract void setXPathFunctionResolver(XPathFunctionResolver resolver)
建立默认函数解析器。
任何XPath
工厂XPath
对象默认使用指定的解析器。
一个NullPointerException
如果抛出resolver
是null
。
resolver
- XPath函数解析器。
NullPointerException
- 如果
resolver
是
null
。
public abstract XPath newXPath()
返回一个新的XPath
当使用所确定的基础对象模型XPathFactory
被实例化。
XPath
.
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.