所以我有这种XML文件:
<?xml version="1.0" encoding="utf-8"?>
<root>
<Project1>
<Students>
<Student>
<name>test2</name>
<studentnum>01</studentnum>
</Student>
</Students>
</Project1>
</root>
要将新的Student添加到此XML文件,请使用以下代码(C#)
XmlDocument doc = new XmlDocument();
doc.Load(Server.MapPath("datastorage.xml"));
XmlElement Student = doc.CreateElement("Student");
XmlElement name = doc.CreateElement("name");
XmlText xmlName = doc.CreateTextNode(txtStudentName1.Text);
XmlElement studentnum = doc.CreateElement("studentnum");
XmlText xmlStudentnum = doc.CreateTextNode(txtStudentNum1.Text);
name.AppendChild(xmlName);
studentnum.AppendChild(xmlStudentnum);
Student.AppendChild(name);
Student.AppendChild(studentnum);
doc.DocumentElement.AppendChild(Student);
doc.Save(Server.MapPath("datastorage.xml"));
但是问题是,它将新学生添加到根目录,而不是Project1 / Students父项。
我该怎么做呢?
我已经看到了XmlTextWriter的解决方案,但是在4.5中不再包括了。
最佳答案
我发现使用Linq To Xml更容易
var xDoc = XDocument.Load(filename);
xDoc.Descendants("Project1").Descendants("Students")
.First()
.Add(new XElement("Student",
new XElement("name","test3"),
new XElement("studentnum","03")));
xDoc.Save(filename);
输出:
<?xml version="1.0" encoding="utf-8"?>
<root>
<Project1>
<Students>
<Student>
<name>test2</name>
<studentnum>01</studentnum>
</Student>
<Student>
<name>test3</name>
<studentnum>03</studentnum>
</Student>
</Students>
</Project1>
</root>
关于c# - 将新 child 添加到现有 child ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25772160/