Вот мой Xmlмне нужен InsertBefore или InsertAfter в родительском не ребенок
<root>
<categories>
<recipe id="RecipeID2">
<name>something 1</name>
</recipe>
<recipe id="RecipeID2">
<name>something 2</name>
</recipe>
<recipe id="RecipeID3">
<name>something 3</name>
</recipe>
</categories>
</root>
Я разбор всех рецепты, где клиент хочет вставить новый рецепт до или после
XmlDocument xmlDocument = new XmlDocument();
xmlDocument.Load("thexmlfiles.xml");
XmlNodeList nodes = xmlDocument.SelectNodes("/root/categories//Recipe");
foreach (XmlNode node in nodes)
{
if (node.Attributes["id"].InnerText == comboBoxInsertRecipe.Text)
{
node.InsertAfter(xfrag, node.ChildNodes[0]);
}
}
Ожидаемый результат:
<root>
<categories>
<recipe id="RecipeID2">
<name>something 1</name>
</recipe>
<recipe id="RecipeID2">
<name>something 2</name>
</recipe>
<recipe id="NewRecipe4">
<name>new Recipe 4</name>
</recipe>
<recipe id="RecipeID3">
<name>something 3</name>
</recipe>
</categories>
</root>
, но когда я вставляю мои новые рецепты его делает, как этот
<root>
<categories>
<recipe id="RecipeID2">
<name>something 1</name>
</recipe>
<recipe id="RecipeID2">
<name>something 2</name>
</recipe>
<recipe id="RecipeID3">
<name>something 3</name>
<recipe id="NewRecipe4">
<name>new Recipe 4</name>
</recipe>
</recipe>
</categories>
</root>
Новый рецепт внутри другого рецепта, но не внутри категорий
Вы выбираете все узлы '' в списке 'nodes', поэтому, конечно, если вы добавите что-то к такому узлу, он будет внутри узла' '. Вам нужно сделать вкладку в ** родительский ** вашего узла рецепта - что-то вроде: 'node.parent.Insert (....);' –