更改内置类方法的默认参数

时间:2015-09-23 21:38:27

标签: python xml lxml

我在我的项目中使用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元素如何知道使用这个继承的类呢?

1 个答案:

答案 0 :(得分:0)

如果我错了,有人会纠正我,但我不认为lxml有任何默认命名空间的概念,你总是无法明确地传递命名空间。也许为通过命名空间的findall()方法编写自定义装饰器?