ITreeWalker

ITreeWalker interface

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

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

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

public interface ITreeWalker : ITraversal

特性

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

方法

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

也可以看看