繁体   English   中英

用于HTML到文本转换的开源Java库

[英]Open source java library for HTML to text conversion

您能否推荐一个将HTML转换为文本的开源Java库(最好是ASL / BSD / LGPL许可证) - 清理所有标签,转换实体(&等)并正确处理<br>和表。

更多信息

我把HTML作为字符串,没有必要从网上获取它。 另外,我正在寻找的是这样的方法:

String convertHtmlToPlainText(String html)

试试杰里科

TextExtractor类听起来像它会做你想要的。 抱歉无法发布第二个链接,因为我是新用户,但稍微向下滚动主页,并且有一个链接。

HtmlUnit ,它甚至在处理JavaScript / Ajax后显示页面。

bliki引擎可以分两步完成。 info.bliki.wiki / Home

  1. 如何将HTML转换为Mediawiki文本 - nediawiki文本已经是一种相当简单的文本格式,但您可以进一步转换它
  2. 如何将Mediawiki文本转换为纯文本 - 您的目标。

这将是一些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 );

Jsoup可以做到这一点:

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解析器进行处理。

我使用了Apache Commons Lang来反过来。 但看起来它可以通过StringEscapeUtils做你需要的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM