是否有标准的Java SE HTML解析器?如果是这样,为什么要使用非标准的呢?

时间:2012-01-31 07:14:48

标签: java html html-parsing html-parser

我需要解析一个包含简单表单的简单HTML页面。 StackOverflow上类似问题的答案建议使用各种非标准Java库之一,如TagSoup,JSoup,HTMLParser等等。

但是,网络搜索显示Java SE中存在一些标准功能:http://docs.oracle.com/javase/7/docs/api/javax/swing/text/html/parser/ParserDelegator.html

我的子问题是:

  1. 标准的ParserDelegator类是否可以解析像我这样的用例?
  2. 标准库有哪些限制需要这么多非标准库?
  3. ParserDelegator在摇摆范围内的事实是否妨碍在常规EC2云服务器中使用它来进行Web应用程序?我是否必须通过大量的箍来解决无头方面的问题,或者只是对配置进行一些小调整?
  4. 如果不推荐标准的,我应该使用哪一种非标准的,给出:(a)我不偏离标准的愿望; (b)我的简单用例; (c)希望成熟可靠的实施; (d)没有尺寸或重量限制,因为这是服务器应用程序而不是嵌入式客户端。 API是一个低得多的优先级,所以虽然我很欣赏JSoup的CSS选择器,如API,其他问题(a)到(d)覆盖它。
  5. 谢谢。

1 个答案:

答案 0 :(得分:2)

JDK内置HTML解析器,支持HTML 1.0左右。它应该支持解析基本文本格式标签和表单。

使用其他第三方解析器的原因是需要支持“真实”HTML页面DHTML,JavaScript等。

JSoup是可以完成这项工作的流行解析器之一。有关其他实现的更多信息,请查看以下讨论:

Pure Java HTML viewer/renderer for use in a Scrollable pane