要在现有的 xml 数据中添加节点或附加内容,我会使用 Linq to XML。
XElement xml = XElement.Load("file.xml");
xml.Add( new XElement("uberNode",
new XElement("childNode", content),
new XElement("anotherChildNode", content)));
xml.Save("file.xml");
Here 是一些其他相关的解决方案。
添加到特定节点(举例):
遵循现有的 XML 数据:
`<Names>
<Name>
<prename>John</prename>
<lastname>Snow</lastname>
</Name>
<Name>
<prename>Harry</prename>
<lastname>Harry</lastname>
</Name>
</Names>`
现在我想在第一个“prename”标签之前添加一个“age”标签,在第一个“lastname”标签之后添加一个“family”标签。
XElement xml = XElement.Load("file.xml");
var childrens = xml.DescendantsAndSelf().ToArray();
var first_prename = childrens[2];
var first_lastname = childrens[3];
Console.WriteLine(childrens[0]); //prints out the whole content
first_prename.AddBeforeSelf(new XElement("age", 22));
first_lastname.AddAfterSelf(new XElement("family", new XElement("mother", "paula"), new XElement("father", "paul")));
xml.Save("file.xml");
结果:
`<Names>
<Name>
<age>22</age>
<prename>John</prename>
<lastname>Snow</lastname>
<family>
<mother>paula</mother>
<father>paul</father>
</family>
</Name>
<Name>
<prename>Harry</prename>
<lastname>Harry</lastname>
</Name>
</Names>`
我遇到了这个问题,Linq 给了我最简单的方法来解决这个问题!
还有其他类似的方式,例如here。但我尝试了更多,而 DescendantsAndSelf() 让我更容易通过。