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.