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

时间:2013-12-09 13:40:22

标签: 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>
   </b>
</a>

我想添加部分:

 <d>
     <info1>test</info1>
     <info2>test 2</info2>
 </d>

<c>部分之后,在''。

之间

我在c#中编写了这段代码来添加定义并添加d:

部分
XDocument doc = XDocument.Load(file.Directory + "//" + file.Name);
XElement newElement = new XElement("d",
                                       new XElement("info1", txtInfo1.Text),
                                       new XElement("info2", txtInfo2.Text)
                    );
doc.Element("a").Add(newElement); 

但是使用此代码,我在<d>代码中添加了<a>部分,并且我希望在<c>部分之后添加(<a><b><c>...</c><d>...<d/><f>...</f></b></a>

3 个答案:

答案 0 :(得分:3)

看起来你正在将它添加到错误的标签中。根据您的问题,您希望将其添加到b

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

答案 1 :(得分:3)

 string path = file.Directory + "//" + file.Name;
 XDocument doc = XDocument.Load(path);
 doc.Root.Element("b").Add(newElement); 
 doc.Save(path); // save document

更新(在cf之间添加):

 doc.Root.Element("b").Element("c").AddAfterSelf(newElement);

答案 2 :(得分:0)

而不是doc.Element("a").Add(newElement);

试试这个:

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