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

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

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

Спасибо!

РЕДАКТИРОВАТЬ

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

2 ответа

Решение

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

HTML-парсеры с открытым исходным кодом в Java

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

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

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

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

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

Другие вопросы по тегам