在安卓系统中如何移除HTML标签?

9

我正在创建一个Android示例项目。 我正在使用示例rss源。

在XML描述中,内容如下:

 <![CDATA[
    <p>15&nbsp;Mar&nbsp;2012</p>
     <a href="http://newsonair.nic.in/full_news.asp?TOP2">
     <p style='FONT-SIZE: 12px; LINE-HEIGHT: 150%' align='justify'>
 <img style='FLOAT: left; MARGIN-RIGHT: 5px' height='100' width='100' src=http://www.newsonair.nic.in/writereaddata/news_pictures/PICNEWS1.jpg?
0.7055475></a><br/> 
Parliament was today disrupted over the issue of removal of Trinamool Congress&#39;s leader and the Railway Minister, Mr.Dinesh Trivedi from the Council of Ministers.</p><br clear="all" />
    ]]>

我想要展示如下内容:
Parliament was today disrupted over the issue of removal of Trinamool Congress&#39;s leader and the Railway Minister, Mr.Dinesh Trivedi from the Council of Ministers.

有人能告诉我如何实现这个想法吗?谢谢。


可能是如何在Android中剥离或转义HTML标记的重复问题。 - user1544337
3个回答

38

按照以下方式执行:

String plain = Html.fromHtml("your_html_string").toString();

是的,我正在以字符串类型变量的形式获取HTML格式的JSON响应。 - Kirtikumar A.
1
实际上,以HTML格式获取JSON是不正确的。您需要修复您的Web服务以返回纯JSON格式。否则,在移动平台上会过度消耗资源。 - waqaslam
实际上,在使用以下代码转换上述JSON之后,它是有效的,例如使用“replaceAll(”s / <(?)> // g“,”“);” - Kirtikumar A.
我在StackOverflow上有一个问题,它与这个有关,但我还没有找到答案:http://stackoverflow.com/questions/22109964/how-to-remove-html-tags-from-a-json-data-in-android?noredirect=1#comment33540717_22109964 - user1662302
1
这并不会产生与“删除HTML标签”相同的结果。这只是将HTML文本转换为纯文本。如果HTML文本包含<p>标签,则可以通过示例看到差异。删除HTML标签应该导致没有换行,但是在此答案中显示的方法将有一个换行。根据所需的结果,这可能是一个问题。 - Christian García
显示剩余4条评论

29
       html = html.replaceAll("<(.*?)\\>"," ");//Removes all items in brackets
       html = html.replaceAll("<(.*?)\\\n"," ");//Must be undeneath
       html = html.replaceFirst("(.*?)\\>", " ");//Removes any connected item to the last bracket
       html = html.replaceAll("&nbsp;"," ");
       html = html.replaceAll("&amp;"," ");

这里是我的代码片段。


我的代码适用于括号内的任何内容,它比 JSON 解析器更高效,因此我的代码稍微大一些。 - sdfwer
它以什么结尾并以什么开头?你能发一下代码行吗? - sdfwer
将此内容放入关于此类正则表达式的另一个问题中,我会在那里给出答案。这个小评论框不是放置答案的好地方。 - sdfwer
模式和匹配器将为您获取最后一块,如果您有Imajh。 - sdfwer
我建议使用@waqaslam的解决方案,因为与HTML.fromHtml相比,这种方法非常慢。 - Mathijs Segers

2
这可能起作用:
myHtmlString.replaceAll("s/<(.*?)>//g","");

或者

Html.fromHtml(htmlSrc).toString();

但是最后一个方案可能存在一些漏洞。

首先,replaceAll("s/<(.*?)>//g",""); 对我来说不起作用。 - Akanksha Rathore

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接