0
我使用Jsoup解析器,并希望进行一些递归调用,找出所有配衬我的关键字标签.. 的问题是,调用堆栈与第一标签时,发现没有孩子结束,(如果是第一个测试),并且不关闭其他电话。堆栈缺少递归调用Java的
public Set<Element> deepSearch(Element node,String keyword)
{
Pattern searchKeyPattern= Pattern.compile(keyword);
Set<Element> matchedTags = new HashSet<Element>();
System.out.println("Node name = " + node.tagName()+" || Node children = " + node.children().size());
if(searchKeyPattern.matcher(node.ownText()).find())
{
matchedTags.add(node);
System.out.println("matched");
}
if(node.childNodeSize()==0)
{
System.out.println("No children found");
return matchedTags;
}
else
{
System.out.println("else the recursive nested call");
return deepSearch(node.children().iterator().next(),keyword);
}
}
这是控制台打印结果:
节点名称= HTML ||节点children = 2 else递归嵌套调用 Node name = head ||节点children = 10 else递归嵌套调用 Node name = meta ||子节点= 0没有发现孩子
这个网址我用于测试的是这个link
有一个问题,我的电话,什么我错过?!
感谢亚历克斯的答复,至于你说的问题是与迭代器,我相信,我有一个改变了它的循环,知道它返回更多的标签..电话号码只是测试,我希望找到一个标签与一个特定的关键字,而不是电话号码.. –
如果答案是正确的,你应该标记它,以防止进一步的答复等。 –