Python -docx и ElemetTree: как найти гиперссылки l ie в абзаце - PullRequest
0 голосов
/ 15 января 2020

Я использую python -docx и ElementTree для преобразования документов Word в XML, и он работает хорошо, за исключением гиперссылок.

Я могу найти, какие python -docx абзацы иметь гиперссылку, однако, если гиперссылка находится в середине текста абзаца, я не знаю, где визуализировать гиперссылку при записи вывода в XML.

Есть ли способ перебрать все элементы в абзаце? Если я правильно понимаю, итерация прогонов будет учитывать только элементы <w:r>, поэтому я ожидаю, что мой элемент гиперссылки будет между 2 прогонами. Как я могу выяснить, какие два?

1 Ответ

0 голосов
/ 15 января 2020

python-docx использует lxml для работы с базовым XML. Я ожидаю, что вам будет гораздо лучше, если вы будете придерживаться этого, вместо того, чтобы вводить Python s xml.etree.ElementTree, если это то, что вы подразумеваете под ElementTree.

Для абзаца вы можете создать базовый XML строка путем вызова:

for paragraph in document.paragraphs:
    print(paragraph._p.xml)

Все другие методы lxml.etree._Element также доступны для вас, а также метод python-docx перегруженный .xpath(), который позволяет писать выражения с префиксами пространства имен вместо всего URL-адреса пространства имен, например paragraph._p.xpath("w:rPr").

...