我有这个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>
)
答案 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
更新(在c
和f
之间添加):
doc.Root.Element("b").Element("c").AddAfterSelf(newElement);
答案 2 :(得分:0)
而不是doc.Element("a").Add(newElement);
试试这个:
doc.Root.Element("b").Add(newElement);