亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在Android中剝離或轉義html標簽

如何在Android中剝離或轉義html標簽

Cats萌萌 2019-12-12 14:10:28
PHP具有strip_tags從字符串中剝離HTML和PHP標簽的功能。Android是否有逃脫html的方法?
查看完整描述

3 回答

?
幕布斯7119047

TA貢獻1794條經驗 獲得超8個贊

鏈接到的答案中的解決方案通常需要使用正則表達式(這是一種容易出錯的方法),或者安裝第三方庫(例如jsoup或jericho)。在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沒有任何html標簽的輸入html 的表示形式。然后,通過將輸出轉換回字符串來剝離“ Span”標記。


隨著討論這里,Html.fromHtml行為已經改變,因為Android的N.請參閱文檔獲取更多信息。



查看完整回答
反對 回復 2019-12-13
?
吃雞游戲

TA貢獻1829條經驗 獲得超7個贊

不好意思,我認為這對其他人可能會有所幫助,


只需刪除html條


Html.fromHtml(htmltext).toString()

這樣,html標記將被替換為字符串,但是字符串的格式將不正確。因此我做到了


Html.fromHtml(htmltext).toString().replaceAll("\n", "").trim()

這樣,我首先用具有空格的nextline替換并刪除了空格。同樣,您可以刪除其他人。



查看完整回答
反對 回復 2019-12-13
?
料青山看我應如是

TA貢獻1772條經驗 獲得超8個贊

Html.escapeHtml(String)如果您定位的是API 16或更高版本,則可以選擇使用。


對于也在API 16以下定位的對象,您可以改為調用以下類,HtmlUtils.escapeHtml(String)而我只是從源代碼中拉出該類Html.escapeHtml(String)。


public class HtmlUtils {


    public static String escapeHtml(CharSequence text) {

        StringBuilder out = new StringBuilder();

        withinStyle(out, text, 0, text.length());

        return out.toString();

    }


    private static void withinStyle(StringBuilder out, CharSequence text,

                                    int start, int end) {

        for (int i = start; i < end; i++) {

            char c = text.charAt(i);


            if (c == '<') {

                out.append("&lt;");

            } else if (c == '>') {

                out.append("&gt;");

            } else if (c == '&') {

                out.append("&amp;");

            } else if (c >= 0xD800 && c <= 0xDFFF) {

                if (c < 0xDC00 && i + 1 < end) {

                    char d = text.charAt(i + 1);

                    if (d >= 0xDC00 && d <= 0xDFFF) {

                        i++;

                        int codepoint = 0x010000 | (int) c - 0xD800 << 10 | (int) d - 0xDC00;

                        out.append("&#").append(codepoint).append(";");

                    }

                }

            } else if (c > 0x7E || c < ' ') {

                out.append("&#").append((int) c).append(";");

            } else if (c == ' ') {

                while (i + 1 < end && text.charAt(i + 1) == ' ') {

                    out.append("&nbsp;");

                    i++;

                }


                out.append(' ');

            } else {

                out.append(c);

            }

        }

    }

}

我正在使用這個效果很好的課程。



查看完整回答
反對 回復 2019-12-13
  • 3 回答
  • 0 關注
  • 521 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號