Python XML iterparse()命名空间

时间:2016-05-23 07:41:02

标签: python xml lxml iterparse

根据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')

我找到了几个例子,但说实话我并不真正了解它们,也没有想法如何解决这个问题。

1 个答案:

答案 0 :(得分:1)

对于带有默认命名空间的XML,您需要在tag中使用命名空间URI以及元素的本地名称:

context = ET.iterparse('../in/process/teszt.xml', events=('end', ), tag='{MyNamespace}B1')