Python XML iterparse() 命名空间

Python XML iterparse() namespacing

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

我找到了几个例子,但老实说我不是很理解它们,也不知道如何解决这个问题。

如果 XML 具有 默认命名空间 ,您需要使用命名空间 URI 以及 tag 中元素的本地名称:

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