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