2012-04-16 13 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

答えて

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

あなたの答えをありがとうが、私はpタグを置き換えるだけでなく、div、pre、br、h1-h6のようないくつかのものを置き換えるので、スペースをクリーンアップするString.trim()メソッドを使用しました... – Qowaz

関連する問題