Hi ниже являются XML-файлов, которые мастер XMLНевозможно использовать InsertAfter для XmlDocument в C#
<?xml version="1.0" encoding="utf-16"?>
<Verify>
<ver>
<ECU>
<values>
</values>
</ECU>
</ver>
</Verify>
У меня есть несколько файлов, которые имеют ту же структуру, как показано ниже
<?xml version="1.0" encoding="utf-16"?>
<Verify>
<ver>
<ECU>
<values>
</values>
</ECU>
</ver>
</Verify>
Я хочу, чтобы мой выход в
<?xml version="1.0" encoding="utf-16"?>
<Verify>
<ver>
<ECU>
<values>
</values>
</ECU>
<ECU>
<values>
</values>
</ECU>
<ECU>
<values>
</values>
</ECU>
</ver>
</Verify>
Я использую ниже код, чтобы прочитать первую как мастер XML и другие файлы поступательных m xmls. Я хочу добавить узел ECU из этих файлов в узле ECU главного файла.
XmlDocument xmlMaster = new XmlDocument();
xmlMaster.Load(@"C:\MasterXMLFile.xml");
XmlElement masterRoot = xmlMaster.DocumentElement;
XmlNode masterParent = masterRoot.LastChild.LastChild;
var downloadfolder = @"C:\AllXMLs\xmls\";
string[] files = Directory.GetFiles(downloadfolder);
foreach (var xx in files)
{
XmlNode masterNode = masterRoot.LastChild.LastChild;
XmlDocument xdoc = new XmlDocument();
xdoc.Load(xx);
XmlElement root = xdoc.DocumentElement;
XmlElement tempNode = (XmlElement)root.LastChild.LastChild;
masterRoot.InsertAfter(tempNode, masterRoot.SelectSingleNode("//ECU").ParentNode);
}
xmlMaster.Save(@"C:\mergeg.xml");
Я получаю ошибку в инструкции InsertAfter, поскольку ссылка объекта не установлена в экземпляр объекта.
Пожалуйста, предложите мне какое-либо решение.
Не ожидайте, что 'LastChild' будет выбирать узел элемента, это может быть текстовый узел. Поэтому просто выберите элемент, который вы хотите скопировать с помощью XPath и 'SelectSingleNode'. И затем убедитесь, что вы используете 'ImportNode', если хотите скопировать узел из одного документа в другой. –