如何在XML文件中的特定节之后添加节,c#

如何在XML文件中的特定节之后添加节,c#,c#,xml,winforms,C#,Xml,Winforms,我有一个XML文件: <a> <b> <name>Ion</name> </b> <c> <article>A10</article> <price>100</price> </c> //here I want to add a new section <f>....</f>

我有一个XML文件:

<a>
   <b>
   <name>Ion</name>
   </b>
   <c>
     <article>A10</article>
     <price>100</price>
   </c>
   //here I want to add a new section
   <f>....</f>
   </b>
</a>

但是有了这段代码,我在
标记中添加了
部分,我想在
部分(
..
)之后添加
看起来您将它添加到了错误的标记中。根据您的问题,您希望将其添加到
b

doc.Root.Element("b").Add(newElement);
更新(在
c
f
之间添加):


而不是
doc.Element(“a”)。添加(newElement)

试试这个:

doc.Root.Element("b").Add(newElement);

你有结束标记,但没有开始标记,加了根标记,看起来你很快就错过了:)@lazyberezovsky,啊,是的。谢谢!
元素
方法受层次约束。我想另一种方法是你必须使用
后代
,但几乎肯定没有必要。谢谢。它很好用,但我忘了什么。在节之后,我还有一个节。我想在和之间添加一个新节。@user1577242我已经更新了答案-使用
AddAfterSelf
方法(向当前元素添加同级)而不是
add
(向当前元素添加子元素)可以完美地工作!谢谢
doc.Root.Element("b").Add(newElement);
 string path = file.Directory + "//" + file.Name;
 XDocument doc = XDocument.Load(path);
 doc.Root.Element("b").Add(newElement); 
 doc.Save(path); // save document
 doc.Root.Element("b").Element("c").AddAfterSelf(newElement);
doc.Root.Element("b").Add(newElement);