【问题标题】:Merging config files (or XML) in C#在 C# 中合并配置文件(或 XML)
【发布时间】:2010-09-25 10:43:12
【问题描述】:

合并 2 个 XML 文件的最快方法是什么,所以我会在第一个中找到一个节点,将其清空,从第二个 XML 中的同一标记(同一节点)中获取所有子节点并将其放入第一个.

【问题讨论】:

  • 请提供示例输入和所需的输出。

标签: c# xml merge


【解决方案1】:

您可以将两个文件加载到两个XElement 对象中,在两个对象中定位目标节点并进行切换。

这是一个示例:

var nodes1 = XDocument.Parse(file1).Element("test").Element("nodes");
var nodes2 = XDocument.Parse(file2).Element("test").Element("nodes");

nodes1.Nodes().Remove();
nodes1.Add(nodes2.Nodes());

这是我尝试过的 XML sn-p:

你好 节点> 你好,我们又见面了 节点> 再一次嗨 节点> 节点> 测试>

【讨论】:

    【解决方案2】:

    在 MSDN 上查看这篇文章:Article

    我认为这是您正在寻找的代码:

    try
    {
        XmlTextReader xmlreader1 = new XmlTextReader("C:\\Books1.xml");
        XmlTextReader xmlreader2 = new XmlTextReader("C:\\Books2.xml");
    
        DataSet ds = new DataSet();
        ds.ReadXml(xmlreader1);
        DataSet ds2 = new DataSet();
        ds2.ReadXml(xmlreader2);
        ds.Merge(ds2);
        ds.WriteXml("C:\\Books.xml");
        Console.WriteLine("Completed merging XML documents");
    }
    catch (System.Exception ex)
    {
        Console.Write(ex.Message);
    }
    Console.Read(); 
    

    希望有帮助!

    【讨论】:

    • 该技术仅适用于可以解析为数据集的 XML 文档的极小子集,例如,在输入中的任何 元素下添加第二个 元素,你会得到一个 DuplicateNameException。
    • 他确实要求最快的方法。
    猜你喜欢
    • 2012-09-28
    • 1970-01-01
    • 2021-04-29
    • 1970-01-01
    • 2014-09-16
    • 1970-01-01
    • 2023-04-01
    • 2012-04-27
    • 1970-01-01
    相关资源
    最近更新 更多