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

使用C#合并两个XML文件不同节点并生成第三份文件的实现问题

C# 实现XML节点合并及头部日期替换方案

实现思路

  • 基于.NET 自带的 System.Xml.Linq 库实现,无需引入第三方依赖,兼容性好
  • 遍历所有输入的XML文件,分别收集所有非空的<cars>、<trucks>下的子节点,支持多文件批量合并
  • 生成新的XML结构时直接替换原有header节点为用户输入的提交日期

完整实现代码

using System.Xml.Linq;

public static void MergeXmlFiles(List<string> inputFilePaths, string outputFilePath, string submitDate)
{
    // 存储收集到的所有car、truck子节点
    List<XElement> allCarNodes = new List<XElement>();
    List<XElement> allTruckNodes = new List<XElement>();

    // 遍历所有输入文件提取有效节点
    foreach (string filePath in inputFilePaths)
    {
        XDocument doc = XDocument.Load(filePath);
        XElement bodyNode = doc.Descendants("body").FirstOrDefault();
        if (bodyNode == null) continue;

        // 提取cars下的所有非空子节点
        XElement carsNode = bodyNode.Element("cars");
        if (carsNode != null && carsNode.HasElements)
        {
            allCarNodes.AddRange(carsNode.Elements());
        }

        // 提取trucks下的所有非空子节点
        XElement trucksNode = bodyNode.Element("trucks");
        if (trucksNode != null && trucksNode.HasElements)
        {
            allTruckNodes.AddRange(trucksNode.Elements());
        }
    }

    // 构建新的XML文件
    XDocument newDoc = new XDocument(
        new XDeclaration("1.0", "utf-8", null),
        new XElement("document",
            new XElement("header",
                new XElement("Date", submitDate)
            ),
            new XElement("body",
                new XElement("cars", allCarNodes),
                new XElement("trucks", allTruckNodes)
            )
        )
    );

    // 保存文件,自动格式化缩进
    newDoc.Save(outputFilePath, SaveOptions.None);
}

使用示例

// 调用示例
List<string> inputFiles = new List<string> { @"C:\file1.xml", @"C:\file2.xml" };
string outputFile = @"C:\目标文件3.xml";
string submitDate = "03/02/2020"; // 你已实现的日期输入功能直接传入即可

MergeXmlFiles(inputFiles, outputFile, submitDate);

注意事项

  • 如果实际业务中的节点名称不是cars/trucks,直接替换代码中对应节点名称字符串即可
  • 若XML带有命名空间,需要额外添加命名空间声明参数,可根据实际场景调整
  • 输出时默认保留缩进格式,符合常规XML文件阅读要求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 16:39:05