Недавно я взял фриланс-проект, где нужно было преобразовать «почти неструктурированные» DOCX-файлы в структурированные данные, например, в JSON. Сначала я думал, что справлюсь за пару дней. Но в итоге потратил больше пяти.
📄 Что такое «почти неструктурированные» DOCX?
Файлы генерируются сервером и содержат несколько статей. Каждая статья обычно включает заголовок, автора, дополнительную информацию и резюме. Однако структура варьируется: где-то нет автора, где-то несколько, а вместо резюме — комментарии.
🔍 Проблемы с существующими библиотеками:
*
officeparser: извлекает только текст, без структуры.*
docx4js: не имеет типов для TypeScript и сложно использовать.*
docx: больше подходит для создания DOCX, а не для парсинга.🛠️ Моё решение:
Поняв, что DOCX — это ZIP-архив с XML-файлами, я решил сам обработать
document.xml. Использовал fast-xml-parser для преобразования XML в JS-объекты. Однако структура XML оказалась сложной, и пришлось разбираться в ней вручную.📌 Вывод:
Иногда проще написать свой парсер, чем пытаться адаптировать существующие решения. Особенно когда структура данных нестабильна и требует гибкого подхода.
https://nguyenhuythanh.com/posts/unstructured-ish-docx-parsing/
✍️ @nodejs_lib
