Как скопировать узел со всеми его потомками из документа XML в другой? - PullRequest
0 голосов
/ 24 марта 2020

У меня есть некоторый код 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: ' Ссылка на объект не установлена ​​для экземпляра объекта. ')!
Что не так?

1 Ответ

0 голосов
/ 24 марта 2020

Я нашел решение, и код будет таким:

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"));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...