-
public interface XPathEvaluator
XPath表达式的评估由XPathEvaluator
提供。 在支持中的XPath 3.0特性DOM实现,如上面所描述的,XPathEvaluator
接口将它实现了相同的对象上实现Document
接口允许它由通常的结合特异性的方法如浇铸或通过使用DOM来获得Level 3 getInterface方法。 在这种情况下,从Document获得的实现支持XPath DOM模块,并且与XPath 1.0规范兼容。具有专门扩展函数或变量的表达式的评估可能在所有实现中都不起作用,因此不可移植。 可以从其他源获得
XPathEvaluator
实现,XPathEvaluator
实现可以为其他规范定义的专用扩展功能或变量提供特定支持。
-
-
方法摘要
所有方法 实例方法 抽象方法 变量和类型 方法 描述 XPathExpression
createExpression(String expression, XPathNSResolver resolver)
使用已解析的命名空间创建已解析的XPath表达式。XPathNSResolver
createNSResolver(Node nodeResolver)
调整任何DOM节点以解析名称空间,以便可以相对于文档中出现的节点的上下文轻松评估XPath表达式。Object
evaluate(String expression, Node contextNode, XPathNSResolver resolver, short type, Object result)
计算XPath表达式字符串,并在可能的情况下返回指定类型的结果。
-
-
-
方法详细信息
-
createExpression
XPathExpression createExpression(String expression, XPathNSResolver resolver) throws XPathException, DOMException
使用已解析的命名空间创建已解析的XPath表达式。 当表达式在应用程序中重用时,这很有用,因为它可以将表达式字符串编译为更高效的内部形式,并预先解析表达式中出现的所有名称空间前缀。- 参数
-
expression
- 要解析的XPath表达式字符串。 -
resolver
-resolver
允许将XPath表达式中的前缀转换为适当的名称空间URI。 如果该被指定为null
,表达内的任何命名空间前缀将导致DOMException
与代码被抛出NAMESPACE_ERR
。 - 结果
- XPath表达式的编译形式。
- 异常
-
XPathException
- INVALID_EXPRESSION_ERR:根据XPathEvaluator
的规则表达式不合法时XPathEvaluator
-
DOMException
- NAMESPACE_ERR:如果表达式包含指定的XPathNSResolver
无法解析的名称空间前缀,则XPathNSResolver
。
-
createNSResolver
XPathNSResolver createNSResolver(Node nodeResolver)
调整任何DOM节点以解析名称空间,以便可以相对于文档中出现的节点的上下文轻松评估XPath表达式。 此适配器的作用类似于节点上的DOM Level 3方法lookupNamespaceURI
,它使用在调用lookupNamespaceURI时节点层次结构中可用的当前信息从给定前缀解析namespaceURI。 也正确解析隐式xml前缀。- 参数
-
nodeResolver
- 要用作命名空间解析的上下文的节点。 - 结果
-
XPathNSResolver
,它根据指定节点范围内的定义解析名称空间。
-
evaluate
Object evaluate(String expression, Node contextNode, XPathNSResolver resolver, short type, Object result) throws XPathException, DOMException
计算XPath表达式字符串,并在可能的情况下返回指定类型的结果。- 参数
-
expression
- 要解析和评估的XPath表达式字符串。 -
contextNode
-context
是用于评估此XPath表达式的上下文节点。 如果是由铸造获得的XPathEvaluatorDocument
那么这必须由同一文件所拥有,而且必须是Document
,Element
,Attribute
,Text
,CDATASection
,Comment
,ProcessingInstruction
,或XPathNamespace
节点。 如果上下文节点是Text
或CDATASection
,则上下文将被解释为XPath所见的整个逻辑文本节点,除非该节点为空,在这种情况下它可能不用作XPath上下文。 -
resolver
-resolver
允许将XPath表达式中的前缀转换为适当的名称空间URI。 如果该被指定为null
,表达内的任何命名空间前缀将导致DOMException
与代码被抛出NAMESPACE_ERR
。 -
type
- 如果指定了特定的type
,则结果将作为相应的类型返回。对于XPath 1.0结果,这必须是XPathResult
接口的代码之一。 -
result
-result
指定可由此方法重用和返回的特定结果对象。 如果将其指定为null
或者实现未重用指定的结果,则将构造并返回新的结果对象。对于XPath 1.0结果,此对象的类型为XPathResult
。 - 结果
-
评估XPath表达式的结果。对于XPath 1.0结果,此对象的类型为
XPathResult
。 - 异常
-
XPathException
- INVALID_EXPRESSION_ERR:根据XPathEvaluator
i的规则表达式不合法时XPathEvaluator
TYPE_ERR:如果结果无法转换为返回指定类型,则引发。 -
DOMException
- NAMESPACE_ERR:如果表达式包含指定的XPathNSResolver
无法解析的名称空间前缀,则XPathNSResolver
。
WRONG_DOCUMENT_ERR:节点来自此XPathEvaluator
不支持的XPathEvaluator
。
NOT_SUPPORTED_ERR:节点不是允许作为XPath上下文节点的类型,或者此XPathEvaluator
不允许请求类型。
-
-