Android:删除除 img 标签之外的所有 html
Android: Strip all html except for img tags
在 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?
这有点 hacky,但它可以完成工作:
- 用一些特殊字符串替换所有 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;
}
在 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?
这有点 hacky,但它可以完成工作:
- 用一些特殊字符串替换所有 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; }