情景:
TextView加载后端接口获取到的html富文本
遇到的问题:
客户端通过接口取到的数据如下:
<p style="margin-top: 0px; margin-bottom: 0px; padding: 0px;
用 TextView 的 Html.fromHtml 解析后很多标签都无法解析,以文案的形式显示出来了
问题分析及解决:
1、因html保存数据时为了避免XSS攻击,将html数据进行了转义,所以获取的数据不是以<> 这种html的格式出现,
转义规则参考: http://tool.oschina.net/commons?type=2,
转义后的
2、TextView加载时,先用 Html.fromHtml 进行转化为正常的html标签,
Matcher m_enter = p_enter.matcher(htmlStr);
htmlStr = m_enter.replaceAll("\n");
//过滤html标签
Pattern p_html = Pattern.compile("]+>", Pattern.CASE_INSENSITIVE);
Matcher m_html = p_html.matcher(htmlStr);
return m_html.replaceAll("");
}
在客户端加载从后端接口获取的HTML富文本时,遇到了由于数据转义导致的TextView无法正常解析HTML标签的问题。文章详细分析了数据转义的原因,并提供了使用正则表达式过滤和替换的方法来转换数据,以便TextView能够正确显示HTML内容。
3442

被折叠的 条评论
为什么被折叠?



