格式化文本以删除html标记

时间:2012-10-26 09:39:13

标签: java android string-formatting

我使用LastFM API获取艺术家信息。当我调用他们的artist.getInfo方法时,我得到一个Artist对象。但是,wiki摘要文本的格式为html,如下所示:

Arch Enemy is a Swedish <a href="http://www.last.fm/tag/melodic%20death%20metal" class="bbcode_tag" rel="tag">melodic death metal</a> band from Halmstad, Sweden, formed in 1996. Founded by <a href="http://www.last.fm/music/Carcass" class="bbcode_artist">Carcass</a> guitarist <a href="http://www.last.fm/music/Michael+Amott" class="bbcode_artist">Michael Amott</a> along with <a href="http://www.last.fm/music/Johan+Liiva" class="bbcode_artist">Johan Liiva</a>, both originally from the influential death metal band <a href="http://www.last.fm/music/Carnage" class="bbcode_artist">Carnage</a>. The band has released seven studio albums, a live album (Burning Japan Live 1999), two DVDs and three EPs. The band was originally fronted by Johan Liiva, who was replaced by <a href="http://www.last.fm/music/Angela+Gossow" class="bbcode_artist">Angela Gossow</a> as lead vocalist in 2000  

我想从此文本中获取纯文本(html-less)。我尝试过使用子字符串手动删除它们,但我无法找到方法。

2 个答案:

答案 0 :(得分:2)

我建议使用Boilerpipe。它具有从HTML中提取纯文本的非常强大的功能。

您所要做的就是:

   URL url = new URL("http://www.example.com/some-location/index.html");
   // NOTE: Use ArticleExtractor unless DefaultExtractor gives better results for you
   String text = ArticleExtractor.INSTANCE.getText(url);

这是从URL中提取文本。但是,您可以将String作为HTML传递给您。我一直在使用它,它是我尝试过的最好的工作。

答案 1 :(得分:1)

Android中有一个Html类。使用此类的最简单方法是,您可以看到fromHtml(...)方法,它返回的Spannable可以很容易地转换为纯文本。

所以下一个例子就是:

String htmlString = "<div>text</div><a href=\"someref\">link</a>";
String plainText = Html.fromHtml(htmlString).toString();