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

如何用Python或Linux命令合并XML重复header标签与多段payload

合并XML中重复标签的实现方案

Python脚本实现

适用于结构规范的XML文件,通过XML解析库安全处理标签合并:

import xml.etree.ElementTree as ET

# 读取目标XML文件
tree = ET.parse('input.xml')
root = tree.getroot()

# 定位所有<header1>标签
header_list = root.findall('header1')

if len(header_list) > 1:
    # 以第一个<header1>作为合并目标
    target_header = header_list[0]
    # 遍历剩余标签,合并内容
    for header in header_list[1:]:
        # 迁移子元素
        for child in header:
            target_header.append(child)
        # 处理文本内容,保留原有格式缩进
        if header.text:
            if target_header.text:
                target_header.text = target_header.text.rstrip() + '\n' + header.text
            else:
                target_header.text = header.text
        # 删除多余的<header1>标签
        root.remove(header)

# 写入合并后的XML文件
tree.write('output.xml', encoding='utf-8', xml_declaration=True)

Linux命令行实现

用awk快速处理文本格式的XML,适合简单场景:

awk '
/<header1>/ {
    if (!first) {
        print $0
        first = 1
        in_content = 1
    } else {
        in_content = 1
        next
    }
}
/<\/header1>/ {
    if (first) {
        print $0
        first = 0
        in_content = 0
    } else {
        in_content = 0
        next
    }
}
in_content { print $0 }
' input.xml > output.xml

示例说明

输入XML(input.xml):

<root>
  <header1>
    payload1 
  </header1>
  <header1>
    payload2
  </header1>
</root>

输出XML(output.xml):

<root>
  <header1>
    payload1 
    payload2
  </header1>
</root>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 20:15:05