ホームページ  >  記事  >  Java  >  Jsoup を使用して HTML をプレーン テキストに変換するときに改行を保持するにはどうすればよいですか?

Jsoup を使用して HTML をプレーン テキストに変換するときに改行を保持するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-10-30 23:24:30914ブラウズ

How Can I Preserve Line Breaks When Converting HTML to Plain Text Using Jsoup?

Jsoup を使用した改行の保持: 総合ガイド

HTML をプレーン テキストに変換する場合、読みやすさを維持するには改行を保持することが重要です。人気のある Java HTML パーサー ライブラリである Jsoup は、HTML の構造を維持しながら HTML からテキストを抽出する効率的な方法を提供します。

このガイドでは、Jsoup の Jsoup.parse を使用する際の改行の保持に関する具体的な問題について詳しく説明します。 (str).text() メソッド。このメソッドは HTML からテキスト コンテンツを抽出しますが、改行はネイティブに保持されません。

TextNode.getWholeText() の利用

当初、質問は次の可能性を検討していました。 Jsoup の TextNode.getWholeText() メソッドを使用します。ただし、このアプローチは HTML タグのコンテキストで改行を処理しないため、効果がないことが判明しました。

効果的な解決策

改行を保持する解決策は、テキストを抽出する前に HTML コンテンツの前処理と後処理の両方を行う、より包括的なアプローチです。

提示されたコード スニペットは次の手順を実行します。

  1. 次を使用して HTML 文字列を解析します。 Jsoup.
  2. 改行が確実に保持されるように、HTML のきれいな印刷を無効にします。

  3. の最後に改行 (n) を追加します。

    タグとその前タグ。

  4. シーケンス n を実際の改行に置き換えます。
  5. 変更された HTML をクリーンアップして、残っている書式設定やタグを削除します。

実装

<code class="java">public static String br2nl(String html) {
    if(html==null)
        return html;
    Document document = Jsoup.parse(html);
    document.outputSettings(new Document.OutputSettings().prettyPrint(false));//makes html() preserve linebreaks and spacing
    document.select("br").append("\n");
    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>

満たされた要件

提供されるソリューションは次の要件を満たします。

  • HTML 内の既存の改行 (n) を保持します。
  • 変換

  • 結果のテキストから不要な書式設定やタグを削除します。

このソリューションを実装すると、Jsoup を使用して HTML をプレーン テキストに変換するときに改行を効果的に保持できます。正確で読みやすい結果を保証します。

以上がJsoup を使用して HTML をプレーン テキストに変換するときに改行を保持するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。