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
有一個問題,我的電話,什麼我錯過?!
感謝亞歷克斯的答覆,至於你說的問題是與迭代器,我相信,我有一個改變了它的循環,知道它返回更多的標籤..電話號碼只是測試,我希望找到一個標籤與一個特定的關鍵字,而不是電話號碼.. –
如果答案是正確的,你應該標記它,以防止進一步的答覆等。 –