如何使用python将大量XML插入到另一个XML文件中?

如何使用python将大量XML插入到另一个XML文件中?,python,xml,python-3.x,elementtree,Python,Xml,Python 3.x,Elementtree,这与以下问题非常相似:,但我需要能够将具有许多属性的许多不同xml文档插入到现有xml文档的深度嵌套部分,其中子元素具有相同的名称。这是一个没有属性的MWE,可以把事情弄得乱七八糟 我需要在其中插入元素的主文档: 我要插入的XML: 我想要的输出: 我当前的python代码: 将xml.etree.ElementTree作为ET导入 top_xml=ET.fromstring(“”) bottom_xml=ET.fromstring(“”) #要在标记下插入'bottom_xml'

这与以下问题非常相似:,但我需要能够将具有许多属性的许多不同xml文档插入到现有xml文档的深度嵌套部分,其中子元素具有相同的名称。这是一个没有属性的MWE,可以把事情弄得乱七八糟

我需要在其中插入元素的主文档:


我要插入的XML:


我想要的输出:


我当前的python代码:

将xml.etree.ElementTree作为ET导入
top_xml=ET.fromstring(“”)
bottom_xml=ET.fromstring(“”)
#要在标记下插入'bottom_xml'
这就是我被卡住的地方
ElementTree.insert
ElementTree.append
出现在顶部元素上。我看到了其他的答案,使用
ElementTree.subelement
将简单的xml元素添加到子元素中,但是在可能有数百行深的情况下手动重新创建底部xml的xml结构似乎不太方便。

使用来获取要插入的节点:

 top_xml = ET.fromstring("<a><b1><array><c1></c1></array></b1><b2></b2></a>")

 bottom_xml = ET.fromstring("<f><g><h2></h2><h1></h1></g></f>")

 insert_node = top_xml.find('.//c1')

 insert_node.append(bottom_xml)

这是完美的除了一件事,我意识到我的MWE是失踪。如果我有多个名为c1的元素,有没有办法继续使用.find?如果我的数据结构是?查看find的文档,似乎我只能在第一个文档中添加元素。我继续为我的问题编辑了MWE。@motherbrain我添加了一个
Edit
来解决你的问题。
In [31]: print(ET.tostring(top_xml).decode())
<a><b1><array><c1><f><g><h2 /><h1 /></g></f></c1></array></b1><b2 /></a>
In [73]: print(ET.tostring(top_xml).decode())
<a><b1><array><c1 /><c1><f><g><h2 /><h1 /></g></f></c1><c1 /></array></b1><b2 /></a>