如何从Java验证HTML?

2022-09-04 21:48:11

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

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

谢谢!

编辑

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


答案 1

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

Java 中的开源 HTML 解析器

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

我不认为你会找到一个HTML分析工具,它完全考虑到了你的要求,主要是因为这些要求没有被表达出来,可能有点模糊。

如果解析器没有立即执行您想要执行的操作,则至少此列表是开源的,因此只要您发布更改,就可以破解解析器。


答案 2

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