Python: извлечь заголовок и подзаголовок из MS Word document.xml - PullRequest
0 голосов
/ 06 октября 2019

Я пытался извлечь заголовки, подзаголовки и абзацы из текстового документа. Сначала я попытался получить xml слова document, но застрял, чтобы найти заголовок и его дочерний элемент, то есть подзаголовок, абзац и таблицу. Вот код, который я использую в Python для извлечения данных.

Я был бы признателен, если бы узнал, как использовать следующий подход для извлечения заголовка, подзаголовка и абзаца в древовидной структуре. Спасибо

import zipfile
import xml.etree.ElementTree

WORD_NAMESPACE = '{http://schemas.openxmlformats.org/wordprocessingml/2006/main}'
PARA = WORD_NAMESPACE + 'p'
TEXT = WORD_NAMESPACE + 't'
TABLE = WORD_NAMESPACE + 'tbl'
ROW = WORD_NAMESPACE + 'tr'
CELL = WORD_NAMESPACE + 'tc'

with zipfile.ZipFile('test.docx') as docx:
    tree = xml.etree.ElementTree.XML(docx.read('word/document.xml'))

for paragraph in tree.getiterator(PARA):

        texts = [node.text
                 for node in paragraph.getiterator(TEXT)
                 if node.text]
        if texts:
            print((texts))
...