1. ホーム
  2. android

[解決済み] Androidでhtmlタグを除去・エスケープする方法

2023-06-24 05:08:19

質問

PHPは strip_tags という関数があり、文字列からHTMLやPHPのタグを取り除くことができます。

Androidにはhtmlをエスケープする方法はありますか?

どのように解決するのですか?

sparkymat がリンクした回答では、一般に正規表現(エラーが起こりやすい方法)か、次のようなサードパーティのライブラリのインストールが必要です。 jsoup または ジェリコ . Androidデバイスでのより良い解決策は、Html.fromHtml()関数を使用することです。

public String stripHtml(String html) {
    if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.N) {
       return Html.fromHtml(html, Html.FROM_HTML_MODE_LEGACY).toString();
    } else {
       return Html.fromHtml(html).toString();
    }
}

これはAndroidに内蔵されているHtmlパーサーを使って Spanned の表現を構築します。その後、出力を文字列に変換することで、マークアップを除去します。

説明したように はここで を見ると、Android NからHtml.fromHtmlの挙動が変更されています。 のドキュメントを参照してください。 を参照してください。