2012-04-16 78 views
2

我必須用一個新行替換多個HTML標籤,例如: p標籤,你在示例代碼中看到:Jsoup:用新行替換標籤=>新行以空格開頭

String html = "<p>Zeile1</p><p>Zeile2</p><p>Zeile3</p><p>Zeile4</p>"; 
Document doc = Jsoup.parse(html); 
doc.select("p").append("\\n"); 
String sanitized = doc.text().replaceAll("\\\\n", System.getProperty("line.separator"); 
System.out.println(sanitized); 

下面是輸出:

Zeile1 
Zeile2 
Zeile3 
Zeile4 

正如你可以看到我拿到2-4行的空間。 他們從哪裏來,我如何擺脫它們?

+0

的空間,只要你撥打'p'元素之間添加'文本()在文件上。不知道爲什麼。如果沒有設置,您可以獲取每個文本元素的集合並將它們連接起來以除去空格。 – bdares 2012-04-16 10:59:51

回答

2

像@bdares建議,你可以通過的元素:

String html = "<p>Zeile1</p><p>Zeile2</p><p>Zeile3</p><p>Zeile4</p>"; 
Document doc = Jsoup.parse(html); 
StringBuilder b = new StringBuilder(); 
for (Element p : doc.select("p")) { 
    b.append(p.text()); 
    b.append(System.getProperty("line.separator")); 
} 
System.out.println(b.toString()); 

輸出:

Zeile1 
Zeile2 
Zeile3 
Zeile4 
+0

感謝您的回答,但是我使用了String.trim() - 方法來清理空格,因爲我不僅替換了p標籤,而且還更像div,pre,br,h1-h6 ... – Qowaz 2012-04-16 14:35:02