C#合并XML文档需据需求选择方式:场景一追加子节点,场景二按名/属性覆盖合并,场景三嵌入为子元素;注意编码、命名空间及大文件流式处理。

在C#中合并两个XML文档,关键在于明确“合并”的具体含义:是简单拼接根节点下的子元素,还是按节点名称/属性智能合并(如相同ID的节点取新值),或是将一个XML作为子节点插入另一个。不同需求对应不同实现方式,下面分几种常见场景说明。
场景一:将第二个XML的所有子节点追加到第一个XML的根节点下
适用于结构兼容、只需“拼起来”的情况,比如合并多个配置片段。
- 用 XDocument.Load() 分别加载两个XML
- 获取第一个文档的根元素(Root)
- 调用 Root.Add(secondDoc.Root.Nodes()),把第二个文档根下的所有节点(元素、文本等)添加进去
- 注意:如果第二个XML有声明(
<?xml version="1.0"?>)或注释,Nodes() 会包含它们;若只需元素,改用 Root.Elements()
场景二:按节点名合并(同名节点内容覆盖或合并)
例如两个XML都有 <user id="100"></user>,希望用第二个中的值更新第一个中的对应节点。
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。
还木有评论哦,快来抢沙发吧~