繁体   English   中英

将第二级元素添加到XML

[英]Add 2nd level element to XML

我有一个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));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM