Etree.lxml を使用して解析しようとしている xml ドキュメントがあります。
<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")
何も返されません。しかし、私が
dom.getroot().find("{http://www.example.com/zzz/yyy}Body")
結果が出ます。
ns_clean=True をパーサーに渡すと、これを防ぐことができると思いました。
何か案は?