XPathFactory 实例可用于创建 XPath 对象。
有关查找机制,请参阅 newInstance(String uri) 。
XPathFactory 类不是线程安全的。换句话说,应用程序有责任确保在任何给定时刻最多有一个线程正在使用 XPathFactory 对象。鼓励实现将方法标记为 synchronized 以保护自己免受损坏的客户端的影响。
XPathFactory 不可重入。当其中一个 newInstance 方法被调用时,应用程序可能不会尝试递归调用 newInstance 方法,即使是从同一个线程。
- 自从:
- 1.5
-
字段摘要
字段 -
构造方法总结
构造方法修饰符构造方法描述protected受保护的构造函数如newInstance()或newInstance(String uri)或newInstance(String uri, String factoryClassName, ClassLoader classLoader)应该用于创建XPathFactory的新实例。 -
方法总结
修饰符和类型方法描述abstract booleangetFeature(String name) 获取指定功能的状态。getProperty(String name) 返回指定属性的值。abstract booleanisObjectModelSupported(String objectModel) 这个XPathFactory支持指定的对象模型吗?static XPathFactory创建XPathFactory内置系统默认实现的新实例。static XPathFactory使用默认对象模型DEFAULT_OBJECT_MODEL_URIW3C 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建立默认变量解析器。
-
字段详细信息
-
DEFAULT_PROPERTY_NAME
根据 JAXP 规范的默认属性名称。
- 参见:
-
DEFAULT_OBJECT_MODEL_URI
默认对象模型 URI。
- 参见:
-
-
构造方法详细信息
-
XPathFactory
protected XPathFactory()受保护的构造函数如
newInstance()或newInstance(String uri)或newInstance(String uri, String factoryClassName, ClassLoader classLoader)应该用于创建XPathFactory的新实例。
-
-
方法详情
-
newDefaultInstance
创建XPathFactory内置系统默认实现的新实例。- 实现要求:
XPathFactory内置系统默认实现只需要支持default object model和 W3C DOM ,但可能支持其他对象模型。- 返回:
XPathFactory内置系统默认实现的新实例。- 自从:
- 9
-
newInstance
使用默认对象模型
DEFAULT_OBJECT_MODEL_URIW3C 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、org.w3c.dom 包定义了 URIDEFAULT_OBJECT_MODEL_URI、http://java.sun.com/jaxp/xpath/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、org.w3c.dom 包定义了 URIDEFAULT_OBJECT_MODEL_URI、http://java.sun.com/jaxp/xpath/dom,实现可以自由地为其他对象模型引入其他 URI。factoryClassName- 提供javax.xml.xpath.XPathFactory实现的完全限定工厂类名称。classLoader-ClassLoader用于加载工厂类。如果使用nullcurrentThread的context classLoader加载工厂类。- 返回:
XPathFactory的新实例- 抛出:
XPathFactoryConfigurationException- 如果factoryClassName是null,或者无法加载、实例化工厂类,或者工厂类不支持uri参数中指定的对象模型。NullPointerException- 如果uri是null。IllegalArgumentException- 如果uri是null或uri.length() == 0。- 自从:
- 1.6
- 参见:
-
isObjectModelSupported
这个
XPathFactory支持指定的对象模型吗?- 参数:
objectModel- 指定返回的XPathFactory将理解的对象模型。- 返回:
true如果XPathFactory支持objectModel,否则false。- 抛出:
NullPointerException- 如果objectModel是null。IllegalArgumentException- 如果是objectModel.length() == 0。
-
setFeature
public abstract void setFeature(String name, boolean value) throws XPathFactoryConfigurationException 为此XPathFactory设置一个功能。该功能适用于XPathFactory创建的XPath对象。它对已创建的XPath对象没有影响。功能名称是完全限定的
URIs。实现可以定义自己的特性。如果此XPathFactory或它创建的XPath不支持该功能,则会抛出XPathFactoryConfigurationException。XPathFactory可以公开一个特征值但无法更改其状态。所有实现都需要支持
XMLConstants.FEATURE_SECURE_PROCESSING功能。当特征为true时,任何对外部函数的引用都是错误的。在这些条件下,实现不得调用XPathFunctionResolver并且必须抛出XPathFunctionException。- 参数:
name- 特征名称。value- 是特征状态true或false。- 抛出:
XPathFactoryConfigurationException- 如果此XPathFactory或它创建的XPath不支持此功能。NullPointerException- 如果name是null。
-
getFeature
获取指定功能的状态。
功能名称是完全限定的
URIs。实现可以定义自己的特性。如果此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
-