根据this post,我成功地解析了我的XML文件,并阅读了它的内容。但是,如果我向它添加命名空间,那么整个事情就出错了。
让我们考虑以下XML:
<root xmlns="MyNamespace">
<A1>
<B1></B1>
<C>1<D1></D1></C>
<E1></E1>
</A1>
<A2>
<B2></B2>
<C>2<D></D></C>
<E2></E2>
</A2>
</root>
我的iterparse看起来像这样:
context = ET.iterparse('../in/process/teszt.xml', events=('end', ), tag='B1')
我找到了几个例子,但说实话我并不真正了解它们,也没有想法如何解决这个问题。
答案 0 :(得分:1)
对于带有默认命名空间的XML,您需要在tag
中使用命名空间URI以及元素的本地名称:
context = ET.iterparse('../in/process/teszt.xml', events=('end', ), tag='{MyNamespace}B1')