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

在C#中合并两个XML文件,可以根据需求选择不同的方式。常见情况是将一个XML文档的节点追加到另一个XML文档的指定位置。使用 System.Xml.Linq 命名空间中的 XDocument 类操作最方便。
假设你有两个XML文件:file1.xml 和 file2.xml,你想把 file2.xml 中的内容添加到 file1.xml 的根节点下。
步骤如下:
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");
}
}
file1.xml:
<Root>
<Item Id="1">
<Name>Apple</Name>
</Item>
</Root>
file2.xml:
千鹿Pr助手
智能Pr插件,融入众多AI功能和海量素材
128
查看详情
<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>
确保两个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的方法
抖音网页版快捷访问 抖音网页版网页版入口操作教程