TGViewer
Node JS Node JS @nodejs_lib · 1.96K subscribers
Post #351 1.01K
💡 Парсинг неструктурированных DOCX в TypeScript/Node.js: как я решил нетривиальную задачу

Недавно я взял фриланс-проект, где нужно было преобразовать «почти неструктурированные» 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
  • 👍 6
More from @nodejs_lib
  1. Dec 12, 2025State QUIC в Node.js QUIC — это протокол транспортного уровня на базе UDP, созданный для з…
  2. Oct 25, 2025Команда npx — это мощный инструмент в экосистеме Node.js, который часто недооценивают, счи…
  3. Sep 8, 2025Как сериализовать данные из Node.js, чтобы они могли использоваться в других языках и сист…
  4. Aug 16, 2025Использование SQL в Node.js с Sequelize Реляционные базы данных используют SQL (Structured…
  5. Jul 25, 2025Building Microservices with Node.js: Explore microservices applications and migrate from a…
  6. Jul 23, 2025Стилизация текста в консоли Node.js В этом посте мы рассмотрим, как можно стилизовать текс…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →