@calculator212

Какая есть литература про парсинг различных форматов данных?

Есть ли литература в которой объясняется методика парсинга форматов типа pdf/doc/специфических бинарных форматов?
  • Вопрос задан
  • 336 просмотров
Пригласить эксперта
Ответы на вопрос 3
GavriKos
@GavriKos
У каждого формата есть спецификация - вот ее и читайте
Ответ написан
Комментировать
mayton2019
@mayton2019
Bigdata Engineer
Есть ли литература в которой объясняется методика парсинга форматов типа pdf/doc/специфических бинарных форматов?

Единой методики нет. Для парсинга коммерческих форматов лучше брать коммерческие либы.
Так хоть будет гарантия что все сработает без ошибок.

Я использовал опенсорцсные библиотеки iText, Poi для pdf,doc. Но не столько для парсинга
сколько для генерации отчетов. А генерация обычно использует подмножество спеки.

https://poi.apache.org/

О том чтобы самому разбирать бинарный формат - забудь. Это будет просто пустая трата времени.
Можно разбирать простые бинарные форматы такие как BMP (bitmap) но для сложных нужно
потратить долгие месяцы и годы чтения спецификаций и то ты реализуешь не все а просто
какое-то подмножество формата. Сам создатель Microsoft форматов документа как-то писал
что они даже для него сложны.

Есть фреймворк Kaitai-Struct который пытается формализовать описание всех форматов
в виде некого DSL (в виде yaml). Я пробовал его использовать. Как по мне - он генерирует
слишком переусложеннные сериализаторы где много лишнего кода. Еслибы писать вручную
то очевидно что было-бы компактнее.

https://formats.kaitai.io/
Ответ написан
Комментировать
Литература - очень сомневаюсь в этом, уж больно много нюансов.
А вот ПО с открытым кодом (библиотеки и т.д.) - имеются. Допустим, Apache Tika.
Если для полнотекстового поиска нужно, то лучше взять готовое ПО: Apache Solr.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
ФЛАЙ НЭТ Москва
от 70 000 до 70 000 ₽
IXORA Нижний Новгород
от 115 000 ₽
Wanted. Москва
от 60 000 до 120 000 ₽