Android:删除除img标签之外的所有html

时间:2015-01-02 08:43:55

标签: android

在Java中,我看到可以轻松指定白名单标签并删除其余的html标签:

Whitelist whitelist = Whitelist.none();
whitelist.addTags(new String[] { "p", "br", "ul" });

String safe = Jsoup.clean(unsafe, whitelist);
return StringEscapeUtils.unescapeXml(safe);

PHP还具有strip_tags($html, $whitelist)功能来执行相同操作。

我在Android中看到,你可以这样做:

android.text.Html.fromHtml(instruction).toString()

但是这会删除整个html,包括img标签。

或者,可以使用Jsoup库,但是我们没有更简单的解决方案而不是使用此300kb库来满足这个简单的要求吗?

在Android中,如何删除除给定文本中的<img>标记之外的所有HTML?

1 个答案:

答案 0 :(得分:2)

这有点苛刻,但它确实起作用了:

  • 将所有img标签替换为某些特殊字符串,以便剥离功能无法看到它们
  • 删除所有HTML
  • 用img标签的特殊字符串替换它们。

    String stripHTMLtagsExceptIMG(String htmlString)
    {
        String subbed = htmlString.replaceAll("< *[iI][mM][gG]", "_iimmgg");
        String stripped = android.text.Html.fromHtml(subbed).toString();
        String unsubbed = stripped.replaceAll("_iimmgg", "<img");
    
        return unsubbed;
    }