在c#中使用XDocument向xml文件添加元素
本文关键字:xml 文件 添加 元素 XDocument | 更新日期: 2023-09-27 18:06:05
这是我当前的XML结构
<root>
<sublist>
<sub a="test" b="test" c="test"></sub>
</sublist>
</root>
我使用以下c#,但当我试图执行
时得到错误 public static void writeSub(string a,string b,string c)
{
XDocument xDoc = XDocument.Load(sourceFile);
XElement root = new XElement("sub");
root.Add(new XAttribute("a", a), new XAttribute("b", b),
new XAttribute("c", c));
xDoc.Element("sub").Add(root);
xDoc.Save(sourceFile);
}
我哪里说错了?
error is
nullreferenceexception was unhandled
您有问题,因为sub
不是文档的根元素。所以,当你输入
xDoc.Element("sub").Add(root);
则xDoc.Element("sub")
返回null
。然后当你尝试调用Add
方法时,你有NullReferenceException
。
我认为你需要添加新的sub
元素到sublist
元素:
xDoc.Root.Element("sublist").Add(root);
我还建议改进命名。如果要创建元素sub
,则调用变量sub
,而不是将其命名为root
(这非常令人困惑)。例如
XDocument xdoc = XDocument.Load(sourceFile);
var sub = new XElement("sub",
new XAttribute("a", a),
new XAttribute("b", b),
new XAttribute("c", c));
xdoc.Root.Element("sublist").Add(sub);
xdoc.Save(sourceFile);