2012-04-18 40 views
0

我可以看到很多類似的問題,但不完全一樣。我只想使用Jsoup從DOM中刪除所有非HTML標記數據(純文本)。結果應該只是沒有純文本的標記。如何使用jsoup刪除html文檔中的所有非標記?

它是與jsoup內置或我應該寫我自己的regExp?解析整個DOM而不是RegExp並移除標籤內的內容會更好嗎?

如果我不得不一一解析大量文檔/頁面,哪個更有效?

[解決] - (我REQ)請參見下面的代碼

public void getNodesHtml(Elements children, Element parent) throws Exception { 
    for(Element e : children) { 
     String nodeName = e.nodeName(); 
     String id = e.id().isEmpty() ? "" : e.id(); 
     parent.append("<" + nodeName + " id=\"" + id + "\"> </" + nodeName + ">"); 

     Elements subchildren = e.children(); 
     getNodesHtml(subchildren, e); 
    } 
} 

回答

0
removeText(Element node){ 

    List<TextNode> textNodes = node.textNodes(); 

    for(TextNode tn : textNode){ 
     tn.remove(); 
    } 

    Elements children = node.children(); 
    for(Element e : Elements) 
     removeText(e); 
} 
+0

感謝bdares!我寫了一個類似的代碼來完成它。 – pMan 2012-04-19 03:56:47

相關問題