Как проверить HTML из Java? - PullRequest
12 голосов
/ 09 декабря 2010

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

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

Спасибо!

EDIT

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

Ответы [ 2 ]

8 голосов
/ 09 декабря 2010

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

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

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

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

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

4 голосов
/ 09 декабря 2010

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

...