ITreeWalker

ITreeWalker interface

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

从子树的逻辑视图中省略节点可能会导致 结构与 完整的未过滤文档中的同一子树有很大不同。 TreeWalker 视图中的兄弟节点可能是原始视图中不同的、广泛 分隔的节点的子节点。例如,考虑一个 NodeFilter,它跳过除 Text 节点和 文档的根节点之外的所有节点。在结果的逻辑视图中,所有文本 节点都将是兄弟节点并显示为根节点的直接子节点,无论原始文档的结构嵌套多深,都没有 。

另见文档对象模型 (DOM) 级别 2 遍历和范围规范. @since DOM Level 2

public interface ITreeWalker : ITraversal

特性

姓名描述
CurrentNode { get; set; }TreeWalker 当前所在的节点。 DOM 树的更改可能导致当前节点不再 被 TreeWalker 的关联过滤器接受。 currentNode 也可以显式设置为任何节点, 不管它是否是在 根节点指定的子树内,或者将被过滤器和 whatToShow标志接受。进一步遍历相对于 currentNode,即使它不是当前视图的一部分, 通过在请求的方向上应用过滤器;如果没有可能的 traversal ,则不会更改 currentNode。

方法

姓名描述
FirstChild()将 TreeWalker 移动到 当前节点的第一个可见子节点,并返回新节点。如果当前节点有 no 可见子节点,返回 null,并保留 current 节点。
LastChild()将 TreeWalker 移动到 当前节点的最后一个可见子节点,并返回新节点。如果当前节点有 no 可见子节点,返回 null,并保留 current 节点。
NextNode()将 TreeWalker 移动到相对于当前节点的 document 顺序中的下一个可见节点,并返回新节点。如果 当前节点没有下一个节点,或者如果搜索nextNode尝试 从TreeWalker的root 节点上一步,返回null,并保留当前节点。
NextSibling()将 TreeWalker 移动到 current 节点的下一个兄弟节点,并返回新节点。如果当前节点没有visible 下一个兄弟,返回null,并保留当前节点。
ParentNode()移动到并返回当前 节点最近的可见祖先节点。如果搜索parentNode尝试从TreeWalker的根节点向上step ,或者 如果找不到可见的祖先节点,则该方法保留 当前位置并返回null。
PreviousNode()将 TreeWalker 移动到上一个可见节点 in 相对于当前节点的文档顺序,并返回 new 节点。如果当前节点没有前一个节点,或者搜索 previousNode尝试从 TreeWalker的根节点上一步,返回 null,并保留当前节点。
PreviousSibling()将 TreeWalker 移动到 当前节点的上一个兄弟节点,并返回新节点。如果当前节点没有 可见的前一个兄弟节点,返回null,并保留 当前节点。

也可以看看