2012-05-28 76 views
2

這是目前令我困擾的。jsoup乾淨包括不想要的回車

Jsoup被包括在返回字符串中的額外換行符如果字符串中含有<br />

如。

String html ="TEST<br />TEST"; 

Jsoup.clean(html, org.jsoup.safety.Whitelist.basic()); 

回報

TEST\n<br />TEST 

如何避免麻煩\ n的納入有什麼建議?

+0

jsoup是開源的。如果你不喜歡這種行爲,你可以修改它。 – nhahtdh

+0

嗨nhahtdh。這只是行爲似乎很奇怪,我假設有一個開箱即用的解決方案或一個值得信賴的性能解決方案。 – jaseFace

+0

任何人在同一個問題的本頁登陸,你可能想閱讀這個類似問題的答案:http://stackoverflow.com/questions/12503117/jsoup-line-feed。總之,簽出jsoup的OutputSettings配置類。 –

回答

2

您是否嘗試過.text();.ownText();Elements類?

//If you want the whole page 
String url = "http://www.yourwebsite.com"; 
Document doc = Jsoup.connect(url).get(); 
System.out.println(doc.text()); 

//If you want some specific part of the page 
Elements elems = doc.select("query"); 

for (Element element : elems) { 
    System.out.println(element.text() + "\n"); 
    System.out.println(element.ownText() + "\n\n"); 
} 

如果每個element返回< p>Hello< b> there< /b> now!< /p>

  1. 方法text();將返回Hello there now!
  2. 方法ownText();將返回Hello now!

只是爲了更容易地明白:.text();會返回整個te xt在你得到的標籤中。 ownText();方法將從標籤本身返回文本,而不是來自子項的文本。

關於doc.select("query");的查詢,你可以搜索here任何你想要的模式。

+0

嗨伊戈爾。有什麼機會可以舉個例子嗎? – jaseFace

+0

我編輯了我的答案。如果您還有其他問題,請提問。 –