Извлечение таблиц из документа DOCX Word в Python - PullRequest
5 голосов
/ 17 августа 2011

Я пытаюсь извлечь содержимое таблиц в документе DOCX Word, и я новичок в xml / xpath.

from docx import *
document = opendocx('someFile.docx')
tableList = document.xpath('/w:tbl')

Это вызывает ошибку «XPathEvalError: неопределенный префикс пространства имен». Я уверен, что это только первое, что можно ожидать при разработке сценария. К сожалению, я не смог найти учебник для python-docx .

Не могли бы вы привести пример извлечения таблицы?

1 Ответ

3 голосов
/ 18 августа 2011

Через некоторое время мы обнаружили, что для правильной работы требуется пространство имен. Метод xpath является подходящим решением, ему просто нужно сначала передать пространство имен документа.

Метод lxml xpath содержит подробности о вещах пространства имен. Посмотрите на страницу в ссылке для передачи словаря пространств имен и других деталей.

Как объяснил mgierdal в своем комментарии выше:

tblList = document.xpath ('// w: tbl', namespaces = document.nsmap) работает как мечта. Итак, насколько я понимаю, w: это сокращение, которое должно быть расширен до полного имени пространства имен, и словарь для этого предоставлено document.nsmap.

...