在Xml文件中更新一行

时间:2015-02-09 09:51:58

标签: c# xml

我希望在日期更改时更新XML文件状态

if (DateTime.Parse(dsUpdate.Tables[0].Rows[0][1].ToString()) <= DateTime.Now)
{
    XDocument xDoc = XDocument.Load(fi.FullName);    
    XElement upd = (from doc in xDoc.Descendants("sysInfo")
                    select doc).Single();
    upd.Element("Status").Value = "Updated";
    xDoc.Save(fi.FullName);                           
}

我正在使用它但不知何故它不起作用。文件的状态不会随着日期的变化而更新。加载文件后,它会跳转到catch块 没有任何事情发生,状态保持不变。

这是我正在使用的XML文件:

<?xml version="1.0" encoding="utf-8"?>
<System>
    <SysInfo>
        <InstallDate>2/11/2015 2:26:21 PM</InstallDate>
        <UpdateDate>2/12/2015 2:26:21 PM</UpdateDate>
        <Status>Installed</Status>
    </SysInfo>
</System>

1 个答案:

答案 0 :(得分:2)

元素名称区分大小写。使用

XElement upd = (from doc in xDoc.Descendants("SysInfo")
                select doc).Single();

或者@JonSkeet提出的建议:

XElement upd = xDoc.Descendants("SysInfo").Single();