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

前端之家收集整理的这篇文章主要介绍了c# – 使用XmlWriter附加现有XML文件前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我使用以下代码来创建 XML文件
  1. XmlWriterSettings xmlWriterSettings = new XmlWriterSettings();
  2. xmlWriterSettings.Indent = true;
  3. xmlWriterSettings.NewLineOnAttributes = true;
  4. using (XmlWriter xmlWriter = XmlWriter.Create("Test.xml",xmlWriterSettings))
  5. {
  6. xmlWriter.WriteStartDocument();
  7. xmlWriter.WriteStartElement("School");
  8. xmlWriter.WriteEndElement();
  9. xmlWriter.WriteEndDocument();
  10. xmlWriter.Close();
  11. }

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

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <School />
  3. <Student>
  4. <FirstName>David</FirstName>
  5. <LastName>Smith</LastName>
  6. </Student>
  7. ...
  8. <Teacher>
  9. <FirstName>David</FirstName>
  10. <LastName>Smith</LastName>
  11. </Teacher>
  12. ...
  13. </School>

我该怎么做?应从键盘读取“FirstName”和“LastName”的值,并且可以随时输入值,当然在现有值下.

解决方法

你可以使用Linq Xml
  1. XDocument doc = XDocument.Load(xmlFilePath);
  2. XElement school = doc.Element("School");
  3. school.Add(new XElement("Student",new XElement("FirstName","David"),new XElement("LastName","Smith")));
  4. doc.Save(xmlFilePath);

编辑

如果要将Element添加到Existing< Student>,只需添加一个Attribute

  1. school.add(new XElement("Student",new XAttribute("ID","ID_Value"),"Smith")));

然后,您可以向现有< Student>添加更多详细信息.通过搜索 – >得到 – >加

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

猜你在找的C#相关文章