【发布时间】:2016-03-19 17:58:03
【问题描述】:
我在迭代 cq5 中的节点时遇到问题。 下面是代码,在迭代第一级子节点尝试迭代所有子节点之后。
但是一旦第一级被迭代,所有子节点都不会被迭代。
private void findNodeWithSpace(Node node) {
try {
NodeIterator iterator = node.getNodes();
while (iterator.hasNext()) {
Node childNode = (Node) iterator.nextNode();
if (StringUtils.isNotEmpty(childNode.getName())) {
if (childNode.getName().contains(" ")) {
childNode.getPath()
count++;
LOG.info("**count is**" + count);
}
NodeIterator iterator1 = childNode.getNodes();
if (iterator1 != null) {
findNodeWithSpace(childNode);
}
}
}
} catch (RepositoryException e) {
e.printStackTrace();
}
}
【问题讨论】:
-
到目前为止我看不到递归函数...
-
在我看来,这将是“深度优先搜索”而不是“广度优先搜索”......?
-
这不是递归调用。您正在调用其他方法(findChildNodeWithSpace),递归意味着您在该方法中调用相同的方法
-
代码更改后行为是否发生了变化?
-
没有,之前忘记修改代码了,问题还是没有解决。