gpt4 book ai didi

c# - 将新 child 添加到现有 child

转载 作者:太空宇宙 更新时间:2023-11-03 21:28:05 25 4
gpt4 key购买 nike

所以我有这种 XML 文件:

<?xml version="1.0" encoding="utf-8"?>
<root>
<Project1>
<Students>
<Student>
<name>test2</name>
<studentnum>01</studentnum>
</Student>
</Students>
</Project1>
</root>

要将新学生添加到此 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"));

但问题是,它向 Root 添加了一个新的 Student,而不是 Project1/Students parant。我该怎么做?

我见过 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com