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

时间:2009-10-05 07:29:09

标签: java html

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

更多信息

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

String convertHtmlToPlainText(String html)

5 个答案:

答案 0 :(得分:19)

尝试Jericho

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

答案 1 :(得分:3)

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

答案 2 :(得分:2)

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

  1. 如何将HTML转换为Mediawiki文本 - nediawiki文本已经是一种相当简单的文本格式,但您可以进一步转换
  2. 如何将Mediawiki文本转换为纯文本 - 您的目标。
  3. 这将是一些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();
    

    但结果会丢失所有段落格式 - 没有任何换行符。

答案 3 :(得分:0)

我使用TagSoup,它可用于多种语言,并且在“野外”找到HTML时效果非常好。它会生成HTML或XML的清理版本,然后您可以使用某些DOM / SAX解析器进行处理。

答案 4 :(得分:-1)

我已经使用Apache Commons Lang来反过来了。但看起来它可以通过StringEscapeUtils完成您的需要。