Как проверить HTML с Java?

Что такое быстрый и простой способ проверки HTML с Java? Im ищет класс с открытым исходным кодом /PD (или набор классов), который описывает различные свойства 100-нечетных HTML-тегов, например:

  • Является ли тег опционным? Пустой? Является ли законным опустить его закрывающий тег?
  • Какие другие теги могут содержать этот тег (если есть)?
  • Какие атрибуты являются законными для этого тега и каковы их типы? (не требуется, но приятно иметь)

Спасибо!

ИЗМЕНИТЬ

Я ищу сделать анализ тегов по тегам HTML-документа, поэтому меня меньше интересует, действительно ли документ в целом, но скорее конкретные требования для каждого типа тега, Я мог кодировать правила на основе спецификации W3C, но хотел бы посмотреть, какие готовые решения доступны в первую очередь.

Ответ 1

Если вы хотите проверить, что определенные теги соответствуют определенным спецификациям, похоже, что нет конца парсеров HTML на основе Java:

Открытый HTML-парсер в Java

Другими словами, вы можете проанализировать HTML-код, а затем проверить полученный документ на теги, которые вы искали, и определить, соответствуют ли они требуемым спецификациям. Если они этого не сделают, вы можете просто выбросить ошибку.

Я не думаю, что вы найдете инструмент анализа HTML, который был написан с учетом ваших требований, главным образом потому, что эти требования не были озвучены и, вероятно, немного туманны.

Если анализатор не делает то, что вы хотите из коробки, по крайней мере этот список является открытым исходным кодом, поэтому вы можете взломать парсер до тех пор, пока вы публикуете свои изменения.

Ответ 2

Проверить JTidy (http://jtidy.sourceforge.net/) и HTMLParser VietSpider (http://sourceforge.net/projects/binhgiang/) оба являются Java-парсером Java и некоторыми возможностями проверки синтаксиса. Некоторые плагины HTML-редактора на основе eclipse используют JTidy (или порт Tidy) для проверки синтаксиса. Или как Дэвид Саид, отправьте страницу на w3c.org

Ответ 3

Самый простой способ: отправить веб-страницу на w3c.org и проанализировать результат.