You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Python在指定层级合并两个XML文件

Python合并XML文件:指定层级合并(以Elements为例)

你当前的实现是直接将第二个XML根节点的子元素追加到第一个根节点下,导致生成了两个<Elements>节点。要实现把两个XML中的<Element>合并到同一个<Elements>节点内,只需精准定位到目标层级后再合并子元素,具体代码如下:

import xml.etree.ElementTree as ET

# 解析两个XML文件
tree1 = ET.parse('File1.xml')
tree2 = ET.parse('File2.xml')
root1 = tree1.getroot()
root2 = tree2.getroot()

# 定位第一个XML中的Elements节点
elements_node = root1.find('Elements')
# 提取第二个XML中Elements节点下的所有Element子节点
source_elements = root2.find('Elements')

# 将第二个XML的Element节点逐个追加到第一个的Elements节点下
for element in source_elements:
    elements_node.append(element)

# 保存合并后的XML(保留XML声明和指定编码)
tree1.write('merged_files.xml', encoding='ASCII', xml_declaration=True)

合并后得到的目标结果:

<?xml version='1.0' encoding='ASCII'?>
<MyData>
  <Elements>
    <Element>
      <ElementID>15</ElementID>
    </Element>
    <Element>
      <ElementID>16</ElementID>
    </Element>
  </Elements>
</MyData>

核心逻辑是避免直接操作根节点的extend方法,而是定位到需要合并的<Elements>层级,把第二个文件里该层级下的所有子节点(即<Element>)逐一追加到第一个文件的对应节点中,以此实现同一层级内的内容合并。

内容的提问来源于stack exchange,提问作者Sheldon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 19:33:14