Jsoup使用時の改行の保持

1。概要

このチュートリアルでは、Jsoupを使用してHTMLをプレーンテキストに解析するときに改行保持するさまざまな方法について簡単に説明します。改行(\ n)文字に関連付けられた改行と、に関連付けられた改行を保持する方法について説明します。

そして

2.HTMLテキストの解析中に\ nを保持する

Jsoupは、デフォルトでHTMLテキストから改行文字(\ n)を削除し、各改行をスペース文字に置き換えます。

ただし、Jsoupが改行文字を削除しないようにするために、JsoupのOutputSettingを変更して、プリティプリントを無効にすることができます。プリティプリントが無効になっている場合、HTML出力メソッドは出力を再フォーマットせず、出力は入力のようになります。

Document.OutputSettings outputSettings = new Document.OutputSettings(); outputSettings.prettyPrint(false);

さらに、Jsoupcleanを使用して、文字列からすべてのHTMLタグを削除できます。

String strHTML = "Hello\nworld"; String strWithNewLines = Jsoup.clean(strHTML, "", Whitelist.none(), outputSettings);

出力文字列strWithNewLinesがどのように見えるかを見てみましょう。

assertEquals("Hello\nworld", strWithNewLines);

したがって、我々は呼び出すことでそれを見ることができますJsoup#はクリーンホワイトリストの#のどれとJsoupのプリティプリント出力の設定を無効にし、我々は改行文字に関連付けられている改行を維持することができます。

他に何ができるか見てみましょう!

3.に関連する改行の保持

そして

タグ

Jsoupcleanメソッドを使用してHTMLテキストをクリーンアップするときに、次のようなHTMLタグによって作成された改行を削除します。

そして

これらのタグに関連付けられた改行を保持するには、最初にHTML文字列からJsoupドキュメントを作成する必要があります。

String strHTML = "Hello

World

Paragraph

"; Document jsoupDoc = Jsoup.parse(strHTML);

次に、改行文字を前に追加します

そして

Document.OutputSettings outputSettings = new Document.OutputSettings(); outputSettings.prettyPrint(false); jsoupDoc.outputSettings(outputSettings); jsoupDoc.select("br").before("\\n"); jsoupDoc.select("p").before("\\n");

ここでは、使用を選択Jsoupの方法文書を一緒にする前に改行文字を付加する方法。

その後、jsoupDocから元の新しい行を保持するHTML文字列を取得します。

String str = jsoupDoc.html().replaceAll("\\\\n", "\n");

最後に、我々は呼んでJsoup#はクリーンホワイトリストの#のいずれも、無効に設定きれいなプリント出力:

String strWithNewLines = Jsoup.clean(str, "", Whitelist.none(), outputSettings);

そして、出力文字列strWithNewLinesは次のようになります。

assertEquals("Hello\nWorld\nParagraph", strWithNewLines);

したがって、前に付けることによって

そして

4.結論

この短い記事では、改行(\ n)文字に関連付けられた改行を保持する方法と

そして

いつものように、これらのコードサンプルはすべてGitHubで入手できます。