2015-10-19 67 views
0

我有一个XML文件?2级元素添加到XML

<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' 发生

+0

在这一点,你得到空引用异常。你可以发布堆栈跟踪吗? –

回答

1
未处理的异常

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));