Module  jdk.xml.dom
软件包  org.w3c.dom.xpath

Interface XPathEvaluator



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

    用专门的扩展函数或变量评估表达式在所有实现中可能不起作用,因此不可移植。 可以从其他来源获得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 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表达式的上下文节点。 如果是由铸造获得的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不允许请求类型。