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