У меня есть xml-документ, который я пытаюсь проанализировать, используя Etree.lxml
<Envelope xmlns="http://www.example.com/zzz/yyy">
<Header>
<Version>1</Version>
</Header>
<Body>
some stuff
<Body>
<Envelope>
Мой код:
path = "path to xml file"
from lxml import etree as ET
parser = ET.XMLParser(ns_clean=True)
dom = ET.parse(path, parser)
dom.getroot()
Когда я пытаюсь получить dom.getroot(), я получаю:
<Element {http://www.example.com/zzz/yyy}Envelope at 28adacac>
Однако я хочу только:
<Element Envelope at 28adacac>
Когда я делаю
dom.getroot().find("Body")
Я ничего не получаю. Однако, когда I
dom.getroot().find("{http://www.example.com/zzz/yyy}Body")
Я получаю результат.
Я думал, что передача ns_clean = True для синтаксического анализатора предотвратит это.
Любые идеи?