我尝试使用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;
}
答案 0 :(得分:1)
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);