我在我的项目中使用lxml
。我有一个输入xml,需要解析它。问题是根元素有xmlns="some_url"
,例如
<root xmlns="some_url">
<child>some_text</child>
<child>some_text</child>
<child>
<sub_child>text</sub_child>
</child>
</root>
我的xml要复杂得多,所以当我需要找到一些元素时,我会使用:
root.findall("nsp:child/nsp:sub_child", namespaces={"nsp":"some_url"})
所以我的代码中充满了find
个方法namespaces={"nsp":"some_url"}
如何将此命名空间作为默认值传递一次?我想我应该继承_SimpleElementPath
班。但是xml元素如何知道使用这个继承的类呢?
答案 0 :(得分:0)
如果我错了,有人会纠正我,但我不认为lxml有任何默认命名空间的概念,你总是无法明确地传递命名空间。也许为通过命名空间的findall()
方法编写自定义装饰器?