情景:
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("");
}