Как бороться с пространствами имен в lxml - PullRequest
0 голосов
/ 03 ноября 2018

Я пытался использовать lxml для чтения XML-файла (который извлекается из файла слова), но не сработал. Теги в этом xml отличаются от тегов пространства имен HTML: всегда имеет w: в качестве префикса.

Вот код:

from lxml import etree

tree = etree.parse(r'C:\Users\Administrator\Desktop\word\document.xml')
aa=tree.xpath("//w:r")
print(aa)

и сообщение об ошибке:

F: \ Anaconda3 \ python.exe F: /Projects/untitled1/item2.py Traceback (большинство последний вызов последний): файл "F: /Projects/untitled1/item2.py", строка 3, в aa = tree.xpath ("// w: r") Файл "src / lxml / etree.pyx", строка 2289, в файле lxml.etree._ElementTree.xpath (src \ lxml \ etree.c: 69785) «src / lxml / xpath.pxi», строка 359, в lxml.etree.XPathDocumentEvaluator. call (src \ lxml \ etree.c: 179365)
Файл "src / lxml / xpath.pxi", строка 227, в lxml.etree._XPathEvaluatorBase._handle_result (src \ lxml \ etree.c: 177729) lxml.etree.XPathEvalError: не определено префикс пространства имен

Процесс завершен с кодом выхода 1

...