模块  jdk.xml.dom
软件包  org.w3c.dom.xpath

Interface XPathEvaluator


  • public interface XPathEvaluator
    XPath表达式的评估由XPathEvaluator提供。 在支持中的XPath 3.0特性DOM实现,如上面所描述的, XPathEvaluator接口将它实现了相同的对象上实现Document接口允许它由通常的结合特异性的方法如浇铸或通过使用DOM来获得Level 3 getInterface方法。 在这种情况下,从Document获得的实现支持XPath DOM模块,并且与XPath 1.0规范兼容。

    具有专门扩展函数或变量的表达式的评估可能在所有实现中都不起作用,因此不可移植。 可以从其他源获得XPathEvaluator实现, XPathEvaluator实现可以为其他规范定义的专用扩展功能或变量提供特定支持。

    另见Document Object Model (DOM) Level 3 XPath Specification

    • 方法详细信息

      • 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表达式的上下文节点。 如果是由铸造获得的XPathEvaluator Document那么这必须由同一文件所拥有,而且必须是DocumentElementAttributeTextCDATASectionCommentProcessingInstruction ,或XPathNamespace节点。 如果上下文节点是TextCDATASection ,则上下文将被解释为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不允许请求类型。