Мой XML-документ выглядит так:
<root>
<parent1>
<element1>
</element1>
</parent1>
<parent1>
<element1>
</element1>
</parent1>
<parent1>
<element1>
</element1>
</parent1>
<parent2>
<element1>
</element1>
</parent2>
<parent2>
<element1>
</element1>
</parent2>
<parent3>
<element2>
</element2>
</parent3>
</root>
Я хотел бы добавить новый узел parent1 после последнего узла parent1 перед первым узлом parent2.
Как это:
<root>
<parent1>
<element1>
</element1>
</parent1>
<parent1>
<element1>
</element1>
</parent1>
<parent1>
<element1>
</element1>
</parent1>
<parent1>
<element1>
</element1>
</parent1>
<parent2>
<element1>
</element1>
</parent2>
<parent2>
<element1>
</element1>
</parent2>
<parent3>
<element2>
</element2>
</parent3>
</root>
Я пытался использовать методы XmlDocument SelectSingleNode и AppendChild, но он добавляет нового потомка только после последнего узла parent3.
EDIT:
Я пробовал с этим кодом:
string newNode = "<parent1/><element1>1</element1></parent1/>";
XmlDocumentFragment xmlDocFrag = xmlDocument.CreateDocumentFragment();
xmlDocFrag.InnerXml = newNode;
XmlElement element = (XmlElement)xmlDocument.SelectSingleNode(@"//root/parent1[last()]");
element.InsertAfter(xmlDocFrag, element); //--> this throws an error
element.AppendChild(xmlDocFrag); //--> this works but it inserts the new node inside the last parent1 node