向XML添加第二级元素
本文关键字:二级 元素 XML 添加 | 更新日期: 2023-09-27 18:18:32
我有一个XML文件:
<uploads>
<upload backupid="3">
XXXXXXXXX
</upload>
</uploads>
我如何添加一个元素(或更多)的地方XXX
(给定backupid
)?
<file filename="XXX">HASH-CODE</file>
我试过了:
public static void AddFileToExistingUpload(int lastUsedID, string fileName, string generatedHash)
{
var xdoc = LoadUploadsXML();
var element = xdoc.Elements("upload").SingleOrDefault(x => x.Attribute("backupid").Value.Equals(lastUsedID));
element.Add(new XElement("file", generatedHash, new XAttribute("filename", fileName)));
SaveUploadXML(xdoc);
}
但我得到的是:
类型为"System"的未处理异常。得到NullReferenceException"发生
xdoc
只有一个uploads
元素,upload
在它下面:
var element = xdoc.Element("uploads").Elements("upload").SingleOrDefault(x => x.Attribute("backupid").Value.Equals(lastUsedID));
或插入Root
:
var element = xdoc.Root.Elements("upload").SingleOrDefault(x => x.Attribute("backupid").Value.Equals(lastUsedID));
或使用Descendants
:
var element = xdoc.Descendants("upload").SingleOrDefault(x => x.Attribute("backupid").Value.Equals(lastUsedID));