Есть ли стандартный HTML-парсер Java SE? Если да, то зачем использовать нестандартные?

Мне нужно разобрать простую HTML-страницу с простой формой. Ответы на подобные вопросы на StackOverflow предлагают использовать одну из множества нестандартных библиотек Java, таких как TagSoup, JSoup, HTMLParser и многие другие.

Однако поиск в Интернете показал, что в Java SE существует некоторая стандартная функциональность через этот класс: http://docs.oracle.com/javase/7/docs/api/javax/swing/text/html/parser/ParserDelegator.html

Мои подвопросы:

  1. Правда ли, что стандартный класс ParserDelegator может анализировать вариант использования, подобный моему?
  2. Каковы ограничения стандартной библиотеки, которые создают потребность в таком количестве нестандартных библиотек?
  3. Препятствует ли тому факту, что ParserDelegator находится в Swing, использовать его на обычном облачном сервере EC2 для веб-приложения? Придется ли мне прыгать через множество обручей, чтобы обойти безголовый аспект, или это будет просто небольшая настройка конфигурации?
  4. Если стандартный не рекомендуется, то какой нестандартный мне следует использовать, учитывая: (а) мое желание не отходить далеко от стандарта; (б) мой простой вариант использования; (c) стремление к зрелой надежной реализации; и (d) отсутствие ограничений по размеру или весу, поскольку это серверное приложение, а не встроенный клиент. API имеет гораздо более низкий приоритет, поэтому, хотя я ценю селектор CSS JSoup, такой как API, другие проблемы с (a) по (d) переопределяют его.

Спасибо.


person necromancer    schedule 31.01.2012    source источник
comment
близкие избиратели, пожалуйста, укажите, что это дубликат (если это причина вашего близкого голосования)   -  person necromancer    schedule 31.01.2012


Ответы (1)


JDK имеет встроенный анализатор HTML, который поддерживает HTML 1.0 или около того. Он должен поддерживать синтаксический анализ тегов и форм форматирования базового текста.

Причиной использования других сторонних парсеров является необходимость поддержки «настоящих» HTML-страниц DHTML, JavaScript и т. д.

JSoup — один из популярных парсеров, который может справиться с этой задачей. Дополнительные сведения о других реализациях см. в следующем обсуждении:

Просмотрщик/рендерер HTML на чистом языке Java для использования на прокручиваемой панели

person AlexR    schedule 31.01.2012
comment
Спасибо - я бы перефразировал, что встроенный парсер не может обрабатывать ничего, кроме древних версий HTML. Ссылка не полезна. Речь идет о зрителях/рендерерах, тогда как мне нужен парсер. - person necromancer; 31.01.2012