-
public interface TreeWalkerTreeWalker对象用于使用由其whatToShow标志和过滤器(如果有)定义的文档视图导航文档树或子树。 使用TreeWalker执行导航的任何功能都将自动支持由TreeWalker定义的任何视图。从子树的逻辑视图中省略节点可以导致与完整的未过滤文档中的相同子树显着不同的结构。 作为
TreeWalker视图中的兄弟节点的节点可以是原始视图中不同的,广泛分离的节点的子节点。 例如,考虑一个NodeFilter,它跳过除Text节点和文档根节点之外的所有节点。 在结果的逻辑视图中,无论原始文档的结构有多深层嵌套,所有文本节点都将是兄弟节点并显示为根节点的直接子节点。另见Document Object Model (DOM) Level 2 Traversal and Range Specification 。
- 从以下版本开始:
- 9,DOM Level 2
-
-
方法摘要
所有方法 实例方法 抽象方法 变量和类型 方法 描述 NodefirstChild()将TreeWalker移动到当前节点的第一个可见子节点,并返回新节点。NodegetCurrentNode()TreeWalker当前所在的节点。booleangetExpandEntityReferences()此标志的值确定实体引用节点的子节点是否对TreeWalker可见。NodeFiltergetFilter()用于筛选节点的过滤器。NodegetRoot()所述root节点的TreeWalker,它被创建时指定。intgetWhatToShow()此属性确定通过TreeWalker呈现的节点类型。NodelastChild()将TreeWalker移动到当前节点的最后一个可见子节点,并返回新节点。NodenextNode()将TreeWalker以相对于当前节点的文档顺序移动到下一个可见节点,并返回新节点。NodenextSibling()将TreeWalker移动到当前节点的下一个兄弟节点,并返回新节点。NodeparentNode()移动并返回当前节点的最近的可见祖先节点。NodepreviousNode()将TreeWalker相对于当前节点按文档顺序移动到上一个可见节点,并返回新节点。NodepreviousSibling()将TreeWalker移动到当前节点的上一个兄弟节点,并返回新节点。voidsetCurrentNode(Node currentNode)TreeWalker当前所在的节点。
-
-
-
方法详细信息
-
getRoot
Node getRoot()
所述root节点的TreeWalker,它被创建时指定。
-
getWhatToShow
int getWhatToShow()
此属性确定通过TreeWalker显示哪些节点类型。 可用的常量集在NodeFilter接口中定义。 将不会跳过whatToShow不接受的节点,但仍可考虑他们的孩子。 请注意,此跳过优先于过滤器(如果有)。
-
getFilter
NodeFilter getFilter()
用于筛选节点的过滤器。
-
getExpandEntityReferences
boolean getExpandEntityReferences()
此标志的值确定实体引用节点的子节点是否对TreeWalker可见。 如果不对,这些孩子及其后代将被拒绝。 请注意,此拒绝优先于whatToShow和过滤器(如果有)。
为了产生具有扩展实体引用,并没有露出实体引用节点自身的文档视图,使用whatToShow标志隐藏实体引用节点并设置expandEntityReferences创建时为trueTreeWalker。 要生成具有实体引用节点但没有实体扩展的文档视图,请使用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尝试从TreeWalker的root节点向上root,或者如果找不到可见的祖先节点,则此方法将保留当前位置并返回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尝试从TreeWalker的root节点向上root,则返回null,并保留当前节点。- 结果
-
新节点,或
null如果当前节点具有在没有先前的节点TreeWalker的逻辑视图。
-
nextNode
Node nextNode()
将TreeWalker以相对于当前节点的文档顺序移动到下一个可见节点,并返回新节点。 如果当前节点没有下一个节点,或者搜索nextNode尝试从TreeWalker的root节点向上步,则返回null,并保留当前节点。- 结果
-
新节点,或
null如果当前节点具有在没有下一个节点TreeWalker的逻辑视图。
-
-