繁体   English   中英

如何将节点及其所有子节点从 XML 文档复制到另一个文档?

[英]How to copy node with all its children from an XML document to another one?

我有一些 C# 代码来打开 XML 文档并将 XML 元素附加到所选节点。 但是,我需要从一个 XML 文档中获取一堆节点的副本,以将它们包含在另一个 XML 文档中。

我怎样才能做到这一点?

我的 C# 代码

    XmlDocument Formal_TemplateField = new XmlDocument();
    XmlDocument BuildMyGridView = new XmlDocument();
    Formal_TemplateField.Load(Server.MapPath("~/Formal_TemplateField.xml"));
    BuildMyGridView.Load(Server.MapPath("~/BuildMyGridView.xml"));

    XmlElement controls = (XmlElement)Formal_TemplateField.SelectSingleNode("controls");
    XmlElement Columns = BuildMyGridView.GetElementById("Columns");

    Columns.AppendChild(controls); //<--- error here
    BuildMyGridView.Save(Server.MapPath("~/BuildMyGridView.xml"));

这段代码给了我一个错误(System.NullReferenceException: 'Object reference not set to an instance of an object.')!
怎么了?

我找到了解决方案,代码就是这样。

C#

XmlDocument Formal_TemplateField = new XmlDocument();
XmlDocument BuildMyGridView = new XmlDocument();

Formal_TemplateField.Load(Server.MapPath("~/Formal_TemplateField.xml"));
BuildMyGridView.Load(Server.MapPath("~/BuildMyGridView.xml"));

XmlNode NEW_NOOD = BuildMyGridView.ImportNode(Formal_TemplateField.DocumentElement["controls"], true);
BuildMyGridView.DocumentElement.GetElementsByTagName("Columns")[0].AppendChild(NEW_NOOD);

BuildMyGridView.Save(Server.MapPath("~/BuildMyGridView.xml"));

暂无
暂无

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

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