13

从 Java 验证 HTML 的快速简单的方法是什么?我正在寻找一个描述 100 多个 HTML 标签的各种属性的开源/PD 类(或一组类),例如:

  1. 标签是可选的吗?空的?省略结束标签是否合法?
  2. 该标签还可以包含哪些其他标签(如果有)?
  3. 该标签的哪些属性是合法的,它们的类型是什么?(不是必需的,但很高兴拥有)

谢谢!

编辑

我希望对 HTML 文档进行逐个标记的分析,因此我对整个文档是否有效不太感兴趣,而是对每种标记的具体要求是什么感兴趣。我可以根据 W3C 规范对规则进行编码,但想先看看哪些现成的解决方案可用。

4

2 回答 2

8

如果您想验证某些标签是否遵循某些规范,那么基于 Java 的 HTML 解析器似乎没有尽头:

Java 中的开源 HTML 解析器

换句话说,您可以解析 HTML,然后检查生成的文档以查找您正在寻找的标签,并确定它们是否符合您需要的规范。如果他们不这样做,那么您就可以抛出一个错误。

我认为您不会找到一个完全按照您的要求编写的 HTML 分析工具,主要是因为这些要求还没有被表达出来,而且可能有点模糊。

如果解析器没有开箱即用,至少这个列表是开源的,所以只要你发布你的更改,你就可以破解解析器。

于 2010-12-08T21:38:41.820 回答
4

检查 JTidy ( http://jtidy.sourceforge.net/ ) 和 VietSpider HTMLParser ( http://sourceforge.net/projects/binhgiang/ ) 都是 Java HTML 解析器和一些语法检查功能。一些基于 Eclipse 的 HTML 编辑器插件使用 JTidy(或 Tidy 的端口)进行语法检查。或者正如大卫所说,将页面提交到 w3c.org

于 2010-12-09T04:52:26.437 回答