2014-10-17 81 views
0

這裏的問題是,如果我這樣做:如何使用JSoup單獨提取網頁中所有元素的文本?

Document doc = Jsoup.connect(url) 
         .timeout(30000) 
         .userAgent("Mozilla") 
         .followRedirects(true) 
         .get(); 
System.out.println(doc.select("body").text()); 

我得到一個塊中的所有文本,我不希望出現這種情況。

假設我寫了這樣的代碼:

String part="<div> 
       Primary div 
       <div> 
       Secondary div 
       </div> 
      </div>"; 
       Document doc = Jsoup.parse(part); 
       Elements links = doc.select("div"); 
       for(Element e:links){ 
        out.println(e.text()); 
        System.out.println(e.text()); 
       } 

輸出是:

Primary div Secondary div 
Secondary div 

內div的文本被刮兩次。

我想的是,刮輸出應該是這樣的:

Primary div 
Secondary div 

我希望每個元素的文本是唯一不包括子元素的文本。

這是如何實現的?嵌套兒童的數量可能不止一個。

回答

0

您沒有得到Secondary div的兩份副本,您將輸出兩次:一次作爲Primary div輸出的一部分,然後再次輸出。

如果您只想要一個元素的自己的文本而不是其子元素的文本,請使用Element#ownText

+0

Thanks @ T.J.Crowder!這就是它。 – 2014-10-17 08:36:16

相關問題