Описание тега jericho-html-parser
Jericho HTML Parser - это java-библиотека, позволяющая анализировать и обрабатывать части документа HTML, включая теги на стороне сервера, при дословном воспроизведении любого нераспознанного или недействительного HTML. Он также предоставляет высокоуровневые функции для работы с HTML-формами.
Jericho HTML Parser - это java-библиотека, позволяющая анализировать и обрабатывать части документа HTML, включая теги на стороне сервера, при дословном воспроизведении любого нераспознанного или недействительного HTML. Он также предоставляет высокоуровневые функции для работы с HTML-формами.
Это библиотека с открытым исходным кодом, выпущенная как по Eclipse Public License (EPL), так и GNU Lesser General Public License (LGPL). Поэтому вы можете свободно использовать его в коммерческих приложениях в соответствии с условиями, указанными в одном из этих лицензионных документов.
Особенности:
- Наличие плохо отформатированного HTML не мешает синтаксическому анализу остальной части документа, что делает библиотеку идеальной для использования с "реальным" HTML, который душит другие парсеры.
- Серверные теги ASP, JSP, PSP, PHP и Mason явно распознаются синтаксическим анализатором. Это означает, что обычный HTML по-прежнему анализируется должным образом, даже если в них есть серверные теги, что часто встречается, например, при динамической установке атрибутов элемента.
- Опция потокового анализа с использованием класса StreamedSource, позволяющая эффективно обрабатывать большие файлы в памяти с помощью итератора событий. По сути, это альтернатива StAX с возможностью обработки HTML и неподтвержденного XML, а также с некоторыми другими функциями, недоступными в других потоковых парсерах.
- В своей стандартной форме это не анализатор событий и не дерево, а скорее комбинация простого текстового поиска, эффективного распознавания тегов и кэша позиций тегов. Текст всего исходного документа сначала загружается в память, а затем только соответствующие сегменты ищут соответствующие символы каждой операции поиска.
- По сравнению с синтаксическим анализатором на основе дерева, таким как DOM, требования к памяти и ресурсам могут быть намного лучше, если анализировать или изменять нужно только небольшие разделы документа. Неправильный или плохо отформатированный HTML может быть легко проигнорирован, в отличие от синтаксических анализаторов на основе дерева, которые должны идентифицировать каждый узел в документе сверху вниз.
- По сравнению с синтаксическим анализатором событий, таким как SAX, интерфейс находится на более высоком уровне и более интуитивно понятен, и при необходимости легко создается древовидное представление иерархии элементов документа.
- Начальная и конечная позиции в исходном документе всех проанализированных сегментов доступны, что позволяет изменять только выбранные сегменты документа без необходимости восстанавливать весь документ из дерева.
- Номер строки и столбца каждой позиции в исходном документе легко доступны.
- Предоставляет простой, но всеобъемлющий интерфейс для анализа и управления элементами управления HTML-формы, включая извлечение и заполнение начальных значений, а также преобразование в режим только для чтения или отображения данных. Анализ элементов управления формы также позволяет хранить данные, полученные из формы, и представлять их соответствующим образом.
- Пользовательские типы тегов могут быть легко определены и зарегистрированы для распознавания синтаксическим анализатором.
- Встроенный функционал для извлечения всего текста из HTML-разметки, подходящий для подачи в систему поиска текста, такую как Apache Lucene.
- Встроенная функциональность для визуализации HTML-разметки с простым форматированием текста. (Нажмите здесь для онлайн-демонстрации)
- Встроенная функциональность для форматирования исходного кода HTML, который выравнивает элементы в соответствии с их глубиной в иерархии элементов документа. (Нажмите здесь для онлайн-демонстрации)
- Встроенная функциональность для сжатия исходного кода HTML путем удаления всех ненужных пробелов.
Официальный сайт: http://jericho.htmlparser.net/
Полезные ссылки: