-
public interface XPathEvaluator
XPath表达式的评估由XPathEvaluator
提供。 在支持中的XPath 3.0特性DOM实现,如上面所描述的,XPathEvaluator
接口将它实现了相同的对象上实现Document
接口允许它由通常的结合特异性的方法如浇铸或通过使用DOM来获得3级getInterface方法。 在这种情况下,从文档获得的实现支持XPath DOM模块,并与XPath 1.0规范兼容。用专门的扩展函数或变量评估表达式在所有实现中可能不起作用,因此不可移植。 可以从其他来源获得
XPathEvaluator
实现,其可以为其他规范所定义的特定扩展功能或变量提供特定支持。
-
-
方法摘要
所有方法 接口方法 抽象方法 Modifier and Type 方法 描述 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
i的规则不合法,则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
不允许请求类型。
-
-