[英]Adding Elements in an existing XML using C#
我正在尝试使用 XDocument 将元素添加到现有的 XML 文档中。 我收到 null 引用异常,因为它没有找到我想要的元素 append。
这是代码:
XDocument doc = XDocument.Load(@"C:\Documents\Test.xml");
XElement root = new XElement("SystemMonitor");
doc.Element("DewesoftSetup").Add(root);
doc.Save(@"C:\Documents\Test.xml");
这是 XML:
<?xml version="1.0" encoding="utf-8"?>
<DewesoftXML>
<System Name="Local">
<SysInfo>
</SysInfo>
<DewesoftSetup>
</DewesoftSetup>
</System>
</DewesoftXML>
我正在尝试向 DewesoftSetup 添加一个子元素。
这是错误:
System.Xml.Linq.XContainer.Element(...) returned null.
Element
方法查找直接子元素。 在您的情况下,您正在寻找DewesoftSetup
,它位于System
下,它本身位于DewesoftXML
(这是根元素)下。 这里有两个选项:
首先,您可以使用Element
两次 - 一次是从根目录到System
,然后再次从System
到DewesoftSetup
:
doc.Root.Element("System").Element("DewesoftSetup").Add(root);
或者,您可以使用Descendants
查找所有名为DewesoftSetup
的后代,然后只取其中的第一个:
doc.Descendants("DewesoftSetup").First().Add(root);
我个人会使用第一种方法,但如果元素可以出现在多个不同的地方,则第二种方法会很有用。
顺便说一句,我会更改root
变量的名称,因为这听起来像是您希望它是根元素,但事实并非如此。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.