我有两个XML文件,我创建了一个包含两个文件的新文件。这里的问题是,两者都有不同的根节点,当两者合并在一起时,我实际上收到了我想要做的事情,但是有两个不同的根节点,而不是XML符合。那么如何在插入其余节点之前添加默认节点呢?
结构如下:
文件1:
<rootFile1>
//dataFile1
</rootFile1>
文件2:
<rootFile2>
//dataFile2
</rootFile2>
合并到:
//missing root
<rootFile1>
//dataFile1
</rootFile1>
<rootFile2>
//dataFile2
</rootFile2>
//missing root
我需要一个包装器节点,用于组合文件。
我的代码如下所示:
XmlTextReader xmlreader1 = new XmlTextReader(@"N:\File.xml");
XmlTextReader xmlreader2 = new XmlTextReader(@"N:\File2.xml");
using (var output = System.IO.File.Create(@"N:\OutputFile.xml"))
{
XElement root = new XElement("root");
foreach (var file in new[] { @"N:\File.xml", @"N:\File2.xml" })
{
using (var input = System.IO.File.OpenRead(file))
{
input.CopyTo(output);
}
}
root.Add(output);
}
提前致谢,谢谢。
答案 0 :(得分:4)
试试这段代码:
XDocument doc1 = XDocument.Load("N:\File.xml");
XDocument doc2 = XDocument.Load("N:\File2.xml");
XDocument merged = new XDocument(new XElement("root", doc1.Root, doc2.Root));
merged.Save("N:\Merged.xml");