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

时间:2018-05-22 21:58:37

标签: 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')

node = ET.Element('ns0:mytag')

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

然后

parent.extend(node)

但是结果树中找不到节点。这三种方法都不起作用。

我在这里缺少什么?

1 个答案:

答案 0 :(得分:1)

我明白了。

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

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

完成上述更改后,它按预期工作。