繁体   English   中英

将xml文档附加到现有xml doc的底部

[英]Append xml document to bottom of existing xml doc

我有一个xml文档,并希望在其底部附加另一个xml。 使用.NET中的xml类,最快的方法是什么(在3.5中)?

谢谢

以最有效率最快,最快最简单? 例如:

XDocument doc1 = XDocument.Load(...);
XDocument doc2 = XDocument.Load(...);

// Copy the root element of doc2 to the end of doc1
doc1.Root.Add(doc2.Root);
doc1.Save(...);

或者,您可能需要:

// Copy the *contents* of the root element of doc2 to the end of doc1
doc1.Root.Add(doc2.Root.Descendants());

如果您可以更准确地了解您的要求,我们可能会提供更多帮助。 请注意,XML文档只能有一个根元素,因此您不能只放置一个文档。

我怀疑你能用XML类做到这一点。 XML库通常旨在保护您免于创建格式不良的XML,并且两个XML文档的串联将很难形成,因为文档节点将具有两个子元素。

如果.Net库允许你这样做,我建议你把它作为一个bug提出来。

var xml = new XmlDocument();
xml.AppendChild(...);
xml.PrependChild(...);

如果您真的想要添加第二个根节点,最快的方法是逐行读取第一个文件并将其添加到第二个文件中。 这是一种非常脏的方式,你会得到一个无效的 xml文件!

System.IO.StreamWriter file1 = System.IO.File.AppendText(path);
System.IO.StreamReader file2 = new System.IO.StreamReader(path2)

while(!file2.EndOfStream)
{
    file1.WriteLine(file2.ReadLine());
}

file1.Close();
file2.Close();

我甚至不喜欢这个解决方案!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM