Jsoup の HTML からプレーン テキストへの変換で改行を保持する
Jsoup は HTML を操作するための強力なツールを提供しますが、デフォルトでは HTML からプレーン テキストへの変換が行われます。テキストは改行を結合して連続テキストとしてレンダリングできます。これらの区切りを保持するために、Jsoup を利用する方法は次のとおりです:
改行保持のためのカスタム関数:
提供された Java コード スニペットでは、Jsoup の text() を利用するカスタム関数 noTags が導入されています。入力 HTML から HTML タグを削除するメソッド。ただし、改行は維持されません。
テキスト全体抽出による機能の強化:
Jsoup の JsonNode クラスは、改行を尊重しながらテキスト コンテンツを抽出する getWholeText() メソッドを提供します。このメソッドを使用すると、noTags 関数を改善できます:
<code class="java">public String noTags(String str) { return Jsoup.parse(str).wholeText(); }</code>
改行保持の実装:
改行を保持するより洗練されたソリューションの場合:
<code class="java">public static String br2nl(String html) { if (html == null) return html; Document document = Jsoup.parse(html); // Suppress pretty printing to preserve line breaks and spacing document.outputSettings(new Document.OutputSettings().prettyPrint(false)); // Append line breaks for <br> tags document.select("br").append("\n"); // Prepend line breaks for <p> tags document.select("p").prepend("\n\n"); String s = document.html().replaceAll("\\n", "\n"); return Jsoup.clean(s, "", Whitelist.none(), new Document.OutputSettings().prettyPrint(false)); }</code>
このカスタム関数は、改行が確実に保持され、目的の出力に合わせて配置されます。これは 2 つの重要な要件を満たしています。
タグは改行 (n) に変換されます。
以上がJsoup を使用して HTML をプレーン テキストに変換するときに改行を保持するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。