信息发布→ 登录 注册 退出

C# 如何合并两个xml文件

发布时间:2025-11-11

点击量:
合并XML文件需加载两个XDocument对象,将第二个文件的子节点添加至第一个文件根元素下并保存。示例中file1.xml与file2.xml根节点相同,合并后所有Item元素集中于同一Root下,形成完整列表,适用于同构XML合并场景。

c# 如何合并两个xml文件

在C#中合并两个XML文件,可以根据需求选择不同的方式。常见情况是将一个XML文档的节点追加到另一个XML文档的指定位置。使用 System.Xml.Linq 命名空间中的 XDocument 类操作最方便。

1. 合并XML文件的基本思路

假设你有两个XML文件:file1.xml 和 file2.xml,你想把 file2.xml 中的内容添加到 file1.xml 的根节点下。

步骤如下:

  • 加载两个XML文件为 XDocument 对象
  • 遍历第二个文件的子节点并添加到第一个文件的根元素
  • 保存合并后的结果

2. 示例代码

using System;
using System.Xml.Linq;

class Program
{
    static void Main()
    {
        // 加载两个XML文件
        XDocument doc1 = XDocument.Load("file1.xml");
        XDocument doc2 = XDocument.Load("file2.xml");

        // 获取第一个文件的根元素
        XElement root1 = doc1.Root;

        // 将第二个文件的所有子节点添加到第一个文件的根节点
        foreach (XElement element in doc2.Root.Elements())
        {
            root1.Add(element);
        }

        // 保存合并后的XML
        doc1.S*e("merged.xml");

        Console.WriteLine("XML文件合并完成,已保存为 merged.xml");
    }
}

3. 示例文件结构

file1.xml:

<Root>
  <Item Id="1">
    <Name>Apple</Name>
  </Item>
</Root>

file2.xml:

千鹿Pr助手 千鹿Pr助手

智能Pr插件,融入众多AI功能和海量素材

千鹿Pr助手 128 查看详情 千鹿Pr助手
<Root>
  <Item Id="2">
    <Name>Banana</Name>
  </Item>
  <Item Id="3">
    <Name>Cherry</Name>
  </Item>
</Root>

合并后 merged.xml:

<Root>
  <Item Id="1">
    <Name>Apple</Name>
  </Item>
  <Item Id="2">
    <Name>Banana</Name>
  </Item>
  <Item Id="3">
    <Name>Cherry</Name>
  </Item>
</Root>

4. 注意事项

确保两个XML文件有相同的根节点结构,否则可能需要调整逻辑,比如创建统一根节点或只合并特定子节点。

如果根节点名称不同,可以只合并子元素而不依赖根节点:

// 只合并内容,不关心根名
foreach (XElement element in doc2.Root.Elements())
{
    root1.Add(element);
}

基本上就这些。用 XDocument 操作简洁明了,适合大多数合并场景。处理前建议先备份原始文件,避免误操作。

以上就是C# 如何合并两个xml文件的详细内容,更多请关注其它相关文章!


相关文章: MongoDB Aggregation:在嵌套对象数组中精确匹配ObjectId  c++如何使用Meson构建系统_c++比CMake更快的构建工具  在J*a中如何实现对象克隆避免共享数据_对象克隆安全实践指南  c++如何使用折叠表达式(Fold Expressions)_c++17可变参数模板新技巧  React Hooks最佳实践:动态组件状态管理的组件化方案  网易大神账号申诉需要多久_网易大神账号申诉流程说明  虫虫漫画精品漫画官网_虫虫漫画精品漫画官网进入精品漫画  Windows10怎么开启夜间模式 Windows10系统设置调整色温与亮度缓解夜间用眼疲劳【教程】  Win11截图该按哪些键 Win11截屏完整流程解析【教程】  sublime如何只显示或隐藏特定类型文件_sublime侧边栏文件过滤  电脑安装程序提示“错误1722”怎么办_Windows Installer服务问题解决【教程】  PrimeNG Sidebar背景色自定义指南:CSS覆盖与主题化实践  Excel中VLOOKUP的第四个参数是干什么用的_Excel VLOOKUP第四参数作用解析  在python-socketio事件处理器中安全访问Flask应用上下文  微信网页版官方入口直达 微信网页版网页版登录使用方法  铁路12306的积分有效期是多久_铁路12306积分有效期说明  Tailwind CSS line-clamp 布局问题解析与修复指南  126邮箱网页版官方入口 126邮箱账号在线登录平台  铁路12306官网网页端快速入口 铁路12306官方首页登录教程  c++如何使用std::memory_order控制原子操作顺序_c++ C++11内存模型详解  汽水音乐在线解析 汽水音乐在线解析入口  深入理解与实现最大堆的Heapify过程:常见错误与修正  漫蛙漫画官方主页入口 漫蛙MANWA网页直达访问链接  如何将HTML表格多行数据保存到Google Sheets  漫蛙Manwa2官网入口地址分享 漫蛙漫画PC版永久访问通道  如何优雅地扩展SprykerGlue后端API授权逻辑,使用spryker/glue-backend-api-application-authorization-connector-extension  抖音商城签到领现金是真的吗_抖音商城签到奖励与提现说明  163邮箱注册官网 免费申请163个人邮箱  Win10如何清理注册表垃圾 Win10手动清理无效注册表【技巧】  PDF怎么合并PDF并保持格式_PDF合并文件保持排版教程  写好的html代码怎么运行出来_运行写好的html代码方法【教程】  MAC怎么安装Homebrew包管理器_MAC为开发者和高级用户安装命令行工具  J*a应用程序首次运行自动创建文件与目录的最佳实践  如何仅使用CSS更改登录界面背景图像图标的颜色  利用5118提升短视频内容效果_5118短视频关键词优化方法  C#使用XPath查询节点时出错? 常见语法错误与调试技巧  Yandex浏览器官方网页版入口 Yandex浏览器最新版官网  12306几点到几点不能订票? | 官方最新系统维护时间全解析  如何在低配置电脑上搭建轻量级J*a环境_占用更小的环境选择技巧  聚水潭ERP登录页面入口 聚水潭ERP官网登录界面  韩小圈电脑版在线入口_网页版免费登录地址  夸克浏览器图书入口 夸克手机浏览器阅读入口  2026年CSGO开箱网站推荐 CSGO开箱平台精选  Gmail邮箱申请注册直达_Gmail邮箱免费注册PC版官网入口2025  html5 app怎么运行环境_配html5 app运行环境【教程】  处理Kafka消息时会话超时与实现幂等性消费者  火锅吃太多会怎样 火锅吃太多会上火吗  b站怎么删除评论_b站评论管理与删除操作  MongoDB聚合管道:正确匹配对象数组中_id的方法  抖音网页版快捷访问 抖音网页版网页版入口操作教程 

在线客服
服务热线

服务热线

4008988990

微信咨询
二维码
返回顶部
×二维码

截屏,微信识别二维码

打开微信

微信号已复制,请打开微信添加咨询详情!