你能否推荐一个开源的Java库(最好是ASL/BSD/LGPL许可证),用于将HTML转换为纯文本 - 清除所有标签,转换实体(&、 等),并正确处理<br>和表格。
更多信息
我有HTML字符串,无需从网络获取。此外,我正在寻找类似于以下方法:
String convertHtmlToPlainText(String html)
尝试使用Jericho。
TextExtractor类看起来可以满足你的需求。很抱歉由于我是一个新用户,无法发布第二个链接,但在主页上向下滚动一点就能看到它的链接。
String plainText = new Source(html).getRenderer().toString();
- Mike Gleason jr CouturierHtmlUnit可以处理JavaScript/Ajax,并且在处理完后还可以展示网页。
大约需要 7-8 行代码,如下所示:
// html to wiki
import info.bliki.html.HTML2WikiConverter;
import info.bliki.html.wikipedia.ToWikipedia;
// wiki to plain text
import info.bliki.wiki.filter.PlainTextConverter;
import info.bliki.wiki.model.WikiModel;
...
String sbodyhtml = readFile( infilepath ); //get content as string
HTML2WikiConverter conv = new HTML2WikiConverter();
conv.setInputHTML( sbodyhtml );
String resultwiki = conv.toWiki(new ToWikipedia());
WikiModel wikiModel = new WikiModel("${image}", "${title}");
String plainStr = wikiModel.render(new PlainTextConverter(false), resultwiki );
System.out.println( plainStr );
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
...
Document doc = Jsoup.parse(sbodyhtml);
String plainStr = doc.body().text();
我使用TagSoup,它适用于多种语言,并且对于在“野外”找到的HTML有很好的处理效果。它可以产生经过清理的HTML或XML版本,然后你可以使用一些DOM/SAX解析器进行处理。
characters
方法)。 - Rich Seller我曾使用Apache Commons Lang来实现相反的功能。但是看起来它可以通过StringEscapeUtils来完成你需要的操作。
Jsoup.parse(html).text()
。 - cubanacan<p>
标签周围添加换行符等),那么Jsoup存储库中有一个示例,这是一个很好的起点:HtmlToPlainText.java。 - Till F.