-
public interface TreeWalkerTreeWalker对象用于使用由其whatToShow标志定义的文档的视图和过滤器(如果有的话)导航文档树或子树。 使用TreeWalker执行导航的任何功能将自动支持由TreeWalker定义的任何视图。从子树的逻辑视图中省略节点可能导致与完整的未过滤文档中的相同子树实质上不同的结构。
TreeWalker视图中的兄弟姐妹的节点可能是原始视图中不同的,广泛分离的节点的子节点。 例如,考虑NodeFilter跳过除Text节点和文档的根节点之外的所有节点。 在结果的逻辑视图中,所有文本节点将是兄弟节点,并且作为根节点的直接子节点显示,无论如何深入地嵌套原始文档的结构。另见Document Object Model (DOM) Level 2 Traversal and Range Specification 。
- 从以下版本开始:
- 9,DOM Level 2
-
-
方法摘要
所有方法 接口方法 抽象方法 Modifier and Type 方法 描述 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不接受的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节点向上移动,或者如果找不到可见的祖先节点,则该方法保留当前位置并返回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节点向上移动,则返回null,并保留当前节点。- 结果
-
新节点,或
null如果当前节点在TreeWalker的逻辑视图中没有先前的节点。
-
nextNode
Node nextNode()
将TreeWalker以相对于当前节点的文档顺序移动到下一个可见节点,并返回新节点。 如果当前节点没有下一个节点,或者如果对nextNode的搜索尝试从TreeWalker的root节点向上移动,则返回null,并保留当前节点。- 结果
-
新节点,或
null如果当前节点在TreeWalker的逻辑视图中没有下一个节点。
-
-