将XElement添加到XDocument

本文关键字:XDocument 添加 XElement | 更新日期: 2023-09-27 18:06:52

我试图使用LINQ动态添加元素到根,它以前是工作的。但它返回"对象引用未设置为对象的实例"。它只能手动创建新的XElement实例。

try  
{
   XDocument xdoc = XDocument.Load(_documentName);
   XElement _newElements = new XElement(_rowName);
   foreach(string s in _commaSeparatedNameValues)
   {
       _newElements.Add(new XElement( s.Split(',')[0], s.Split(',')[1]));
   }
   xdoc.Element(_rowName).Add(_newElements);
   xdoc.Save(_documentName);
}
catch(Exception ex)
{
   string s = ex.Message;
}

将XElement添加到XDocument

XDocument xdoc = XDocument.Load(_documentName);       
XElement _newElements = new XElement(_rowName);
...
xdoc.Element(_rowName).Add(_newElements);

您从未将_newElements添加到xdoc中,因此xdoc.Element(_rowName)将是null
否则,它就会试图为自己添加一个元素。

未测试的修复:

//xdoc.Element(_rowName).Add(_newElements);
xdoc.Add(_newElements);

或更可能:

xdoc.Root.Add(_newElements);