如何在XML文件中的特定节之后添加节,c#
我有一个XML文件:如何在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>
<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);