3

2 つの XML ファイルをマージする最速の方法は何でしょうか。最初のノードでノードを見つけて空にし、2 番目の XML で同じタグ (同じノード) からすべての子を取得して、最初の XML ファイルに配置します。

4

2 に答える 2

4

両方のファイルを 2 つの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スニペットです:

<テスト>
    <ノード>
        <ノード ID="1">
            やあ
        </ノード>
        <ノード ID="2">
            また会ったね
        </ノード>
        <ノード ID="3">
            こんにちはもう一度
        </ノード>
    </ノード>
</テスト>
于 2008-12-05T03:20:59.897 に答える
0

MSDN のこの記事をチェックしてください:記事

これはあなたが探しているコードのビットだと思います:

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(); 

それが役立つことを願っています!

于 2008-12-05T00:50:41.570 に答える