Я не могу найти текстовый атрибут в XML-файле, используя ElementTree - PullRequest
0 голосов
/ 17 июня 2019

Я пытаюсь найти текст в текстовом документе.У меня есть слово xml, и сейчас я пытаюсь получить текст в этих тегах.

<w:body>
        <w:p w14:paraId="416D9DAB" w14:textId="77777777" w:rsidR="00947170" w:rsidRDefault="00947170" w:rsidP="00947170">
            <w:pPr>
                <w:pStyle w:val="Title"/>
            </w:pPr>
            <w:r>
                <w:t>text here</w:t>
            </w:r>
        </w:p>

Я специально просматриваю теги w: t

<w:t>text here</w:t>

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

file_name = 'document.xml'
full_file = 'c:\\filepath'

dom = ET.parse(full_file)
root = dom.getroot()

for body in root:
    if body.tag == '{http://schemas.openxmlformats.org/wordprocessingml/2006/main}body':
        for paragraph in body:
            if paragraph.tag == '{http://schemas.openxmlformats.org/wordprocessingml/2006/main}p':
               for right_align in paragraph:
                   if right_align.tag == '{http://schemas.openxmlformats.org/wordprocessingml/2006/main}r':
                        for work_text in right_align:
                            if word_text.tag == '{http://schemas.openxmlformats.org/wordprocessingml/2006/main}t':
                                print(word_text.attrib)

Я ссылаюсь на часть <w: тега word-xml как {http://schemas.openxmlformats.org/wordprocessingml/2006/main},, потому что это то, что мне вернул .tag.Я уверен, что это хак с моей стороны, и он работает до сих пор, хотя я бы хотел знать правильный путь.Это заставляет меня думать, что причина, по которой я не могу найти атрибуты, заключается в том, что я делаю ссылки на неправильные теги.

Выходы:

print(word_text.get(text))

Печатает НЕТ

print(word_text.get(text))

Обычно печатает {}, некоторые тексты получают {'{http://www.w3.org/XML/1998/namespace}space':' preserve '}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...