使用python ElementTree,如何将节点添加到具有名称空间的树中?

使用python ElementTree,如何将节点添加到具有名称空间的树中?,python,xml,elementtree,Python,Xml,Elementtree,我要向其中添加节点的树使用命名空间: xmlns:ns0="http://someplace.net/xml/" 在插入子节点之前,必须首先到达父节点,在我的例子中,findall()为我提供了如下所示的父节点: <ns0:parent xmlns:ns0="http://someplace.net/xml/" someattrib="some value"> node = ET.Element('mytag') 或 或 然后 但在生成的树中找不到节点。这三种方法都不起作用 我

我要向其中添加节点的树使用命名空间:

xmlns:ns0="http://someplace.net/xml/"
在插入子节点之前,必须首先到达父节点,在我的例子中,
findall()
为我提供了如下所示的父节点:

<ns0:parent xmlns:ns0="http://someplace.net/xml/" someattrib="some value">
node = ET.Element('mytag')

然后

但在生成的树中找不到节点。这三种方法都不起作用

我在这里遗漏了什么?

我发现了

我应该使用
ET.SubElement(parent,node)
替换
ET.Element
,并忘记
.extend()

我还应该从标记中删除硬编码的名称空间前缀

在进行了上述更改后,它按预期工作

node = ET.Element('ns0:mytag')
node = ET.Element('ns0:mytag')
node.set('xmlns:ns0', "http://someplace.net/xml/")
parent.extend(node)