Module  java.xml
软件包  org.w3c.dom.traversal

Interface TreeWalker



  • public interface TreeWalker
    TreeWalker对象用于使用由其whatToShow标志定义的文档的视图和过滤器(如果有的话)导航文档树或子树。 使用TreeWalker执行导航的任何功能将自动支持由TreeWalker定义的任何视图。

    从子树的逻辑视图中省略节点可能导致与完整的未过滤文档中的相同子树实质上不同的结构。 TreeWalker视图中的兄弟姐妹的节点可能是原始视图中不同的,广泛分离的节点的子节点。 例如,考虑NodeFilter跳过除Text节点和文档的根节点之外的所有节点。 在结果的逻辑视图中,所有文本节点将是兄弟节点,并且作为根节点的直接子节点显示,无论如何深入地嵌套原始文档的结构。

    另见Document Object Model (DOM) Level 2 Traversal and Range Specification

    从以下版本开始:
    9,DOM Level 2
    • 方法摘要

      所有方法  接口方法  抽象方法 
      Modifier and Type 方法 描述
      Node firstChild​()
      TreeWalker移动到当前节点的第一个可见子节点,并返回新节点。
      Node getCurrentNode​()
      TreeWalker当前位于的节点。
      boolean getExpandEntityReferences​()
      该标志的值确定实体引用节点的子节点是否可见 TreeWalker
      NodeFilter getFilter​()
      用于屏幕节点的过滤器。
      Node getRoot​()
      所述 root节点的 TreeWalker ,它被创建时指定。
      int getWhatToShow​()
      此属性确定通过 TreeWalker呈现哪些节点类型。
      Node lastChild​()
      TreeWalker移动到当前节点的最后一个可见子节点,并返回新节点。
      Node nextNode​()
      TreeWalker以相对于当前节点的文件顺序移动到下一个可见节点,并返回新节点。
      Node nextSibling​()
      TreeWalker移动到当前节点的下一个兄弟节点,并返回新节点。
      Node parentNode​()
      移动并返回当前节点的最近可见的祖先节点。
      Node previousNode​()
      TreeWalker以相对于当前节点的文档顺序移动到上一个可见节点,并返回新节点。
      Node previousSibling​()
      TreeWalker移动到当前节点的上一个兄弟节点,并返回新节点。
      void setCurrentNode​(Node currentNode)
      TreeWalker当前位于的节点。
    • 方法详细信息

      • getRoot

        Node getRoot​()
        所述 root节点的 TreeWalker ,它被创建时指定。
      • getWhatToShow

        int getWhatToShow​()
        此属性确定通过TreeWalker呈现哪些节点类型。 可用的常量集在NodeFilter接口中定义。 whatToShow不接受的whatToShow将被跳过,但他们的孩子可能仍然被考虑。 请注意,此跳过优先于过滤器(如果有)。
      • getFilter

        NodeFilter getFilter​()
        用于屏幕节点的过滤器。
      • getExpandEntityReferences

        boolean getExpandEntityReferences​()
        该标志的值确定实体引用节点的子节点是否可见TreeWalker 如果是虚假的,这些孩子和他们的后裔将被拒绝。 请注意,此拒绝优先于whatToShow和过滤器(如果有)。
        为了产生具有扩展实体引用,并没有露出实体引用节点自身的文档视图,使用whatToShow标志隐藏实体引用节点并设置expandEntityReferences创建时为true TreeWalker 要生成具有实体引用节点但没有实体扩展的文档的视图,请使用whatToShow标志来显示实体引用节点,并将expandEntityReferences设置为false。
      • getCurrentNode

        Node getCurrentNode​()
        TreeWalker目前所在的节点。
        对DOM树的更改可能会导致当前节点不再被TreeWalker的关联过滤器所接受。 currentNode也可以显式设置为任何节点,无论是否在由root节点指定的子树内,或者将被过滤器和whatToShow标志接受。 即使不是当前视图的一部分,通过在所请求的方向上应用滤波器,进一步进行相对于currentNode遍历; 如果没有遍历, currentNode不会改变。
      • setCurrentNode

        void setCurrentNode​(Node currentNode)
                     throws DOMException
        TreeWalker当前位于的节点。
        对DOM树的更改可能导致当前节点不再被TreeWalker的关联过滤器所接受。 currentNode也可以显式设置为任何节点,无论是否在由root节点指定的子树内,或者将被过滤器和whatToShow标志接受。 即使不是当前视图的一部分,通过在所请求的方向上应用滤波器,进一步进行相对于currentNode遍历; 如果不能进行遍历,则不改变currentNode
        异常
        DOMException - NOT_SUPPORTED_ERR:如果尝试将 currentNode设置为 currentNode ,则 null
      • parentNode

        Node parentNode​()
        移动并返回当前节点的最近可见的祖先节点。 如果搜索parentNode尝试从TreeWalkerroot节点向上移动,或者如果找不到可见的祖先节点,则该方法保留当前位置并返回null
        结果
        新的父节点,或 null如果当前节点具有在没有父 TreeWalker的逻辑视图。
      • firstChild

        Node firstChild​()
        TreeWalker移动到当前节点的第一个可见子节点,并返回新节点。 如果当前节点没有可见的子节点,则返回null ,并保留当前节点。
        结果
        新节点,或 null如果当前节点在 TreeWalker的逻辑视图中没有可见的小孩。
      • lastChild

        Node lastChild​()
        TreeWalker移动到当前节点的最后一个可见子节点,并返回新节点。 如果当前节点没有可见的子节点,则返回null ,并保留当前节点。
        结果
        新节点,或 null如果当前节点在 TreeWalker的逻辑视图中没有子节点。
      • previousSibling

        Node previousSibling​()
        TreeWalker移动到当前节点的上一个同级,并返回新节点。 如果当前节点没有可见的上一个兄弟节点,则返回null ,并保留当前节点。
        结果
        新节点,或null如果当前节点没有以前的兄弟。 TreeWalker的逻辑观点。
      • nextSibling

        Node nextSibling​()
        TreeWalker移动到当前节点的下一个兄弟节点,并返回新节点。 如果当前节点没有可见的下一个兄弟节点,则返回null ,并保留当前节点。
        结果
        新节点,如果当前节点没有下一个兄弟节点, null TreeWalker的逻辑观点。
      • previousNode

        Node previousNode​()
        TreeWalker以相对于当前节点的文档顺序移动到上一个可见节点,并返回新节点。 如果当前节点没有以前的节点,或者如果搜索previousNode尝试从TreeWalkerroot节点向上移动,则返回null ,并保留当前节点。
        结果
        新节点,或 null如果当前节点在 TreeWalker的逻辑视图中没有先前的节点。
      • nextNode

        Node nextNode​()
        TreeWalker以相对于当前节点的文档顺序移动到下一个可见节点,并返回新节点。 如果当前节点没有下一个节点,或者如果对nextNode的搜索尝试从TreeWalkerroot节点向上移动,则返回null ,并保留当前节点。
        结果
        新节点,或 null如果当前节点在 TreeWalker的逻辑视图中没有下一个节点。