为什么 TreeWalker currentNode 默认为根节点?
Why does TreeWalker currentNode default to root node?
构造 TreeWalker 时,为什么 currentNode 指向根,即使它可能未通过过滤条件?
我本以为它是空的,直到我调用 nextNode,这样我才能看到根是否正在传递传递给它的过滤条件。
我猜这是它的设计方式,我只是不太明白原因。它不适合我查找具有特定属性集(包括根)的所有元素的用例。如果我转到根的父级,我会包括我不想要的兄弟姐妹。
currentNode
指向根,因为这样就可以递归遍历文档子树,把每个childNode
都称为自己树的根。它不一定指向文档的根目录,只是指向创建树的 root
节点。参见 tree traversal
current node不代表上次方法调用的结果,而是表示行走的当前状态,即从哪个节点开始下一步。它绝不能为空,并且确实可能是一个不会通过过滤器的节点 - 它可以任意设置(手动,不仅通过步骤方法)。
只有所有方法调用的return个值才会被过滤节点,可以是null
.
It doesn't fit my use case of finding all elements with a particular attribute set, including the root.
如果匹配过滤器,使用 parentNode
method 最终会到达根节点,否则 null
。
构造 TreeWalker 时,为什么 currentNode 指向根,即使它可能未通过过滤条件?
我本以为它是空的,直到我调用 nextNode,这样我才能看到根是否正在传递传递给它的过滤条件。
我猜这是它的设计方式,我只是不太明白原因。它不适合我查找具有特定属性集(包括根)的所有元素的用例。如果我转到根的父级,我会包括我不想要的兄弟姐妹。
currentNode
指向根,因为这样就可以递归遍历文档子树,把每个childNode
都称为自己树的根。它不一定指向文档的根目录,只是指向创建树的 root
节点。参见 tree traversal
current node不代表上次方法调用的结果,而是表示行走的当前状态,即从哪个节点开始下一步。它绝不能为空,并且确实可能是一个不会通过过滤器的节点 - 它可以任意设置(手动,不仅通过步骤方法)。
只有所有方法调用的return个值才会被过滤节点,可以是null
.
It doesn't fit my use case of finding all elements with a particular attribute set, including the root.
如果匹配过滤器,使用 parentNode
method 最终会到达根节点,否则 null
。