gpt4 book ai didi

c# - 使用 XmlWriter 附加现有的 XML 文件

转载 作者:数据小太阳 更新时间:2023-10-29 01:48:35 25 4
gpt4 key购买 nike

我使用以下代码创建了一个 XML 文件:

XmlWriterSettings xmlWriterSettings = new XmlWriterSettings();
xmlWriterSettings.Indent = true;
xmlWriterSettings.NewLineOnAttributes = true;
using (XmlWriter xmlWriter = XmlWriter.Create("Test.xml", xmlWriterSettings))
{
xmlWriter.WriteStartDocument();
xmlWriter.WriteStartElement("School");
xmlWriter.WriteEndElement();
xmlWriter.WriteEndDocument();
xmlWriter.Close();
}

我需要动态插入节点以创建以下结构:

<?xml version="1.0" encoding="utf-8"?>
<School />
<Student>
<FirstName>David</FirstName>
<LastName>Smith</LastName>
</Student>
...
<Teacher>
<FirstName>David</FirstName>
<LastName>Smith</LastName>
</Teacher>
...
</School>

我该怎么做? "FirstName"和 "LastName"的值应该从键盘读取,并且可以随时输入值,当然是在 existing 下。

最佳答案

你可以使用 Linq Xml

XDocument doc = XDocument.Load(xmlFilePath);
XElement school = doc.Element("School");
school.Add(new XElement("Student",
new XElement("FirstName", "David"),
new XElement("LastName", "Smith")));
doc.Save(xmlFilePath);

编辑

如果要将元素添加到现有 <Student> , 前面加一个Attribute就可以了

school.add(new XElement("Student",
new XAttribute("ID", "ID_Value"),
new XElement("FirstName", "David"),
new XElement("LastName", "Smith")));

然后您可以向现有 <Student> 添加更多详细信息通过搜索 -> 获取 -> 添加

XElement particularStudent = doc.Element("School").Elements("Student")
.Where(student => student.Attribute("ID").Value == "SearchID")
.FirstOrDefault();
if(particularStudent != null)
particularStudent.Add(new XElement("<NewElementName>","<Value>");

关于c# - 使用 XmlWriter 附加现有的 XML 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20922835/

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