以下是我的XML结构。
XML
<Info>
<Details>
<ID>user</ID>
<StartDate>23-10-2016</StartDate>
<EndDate>22-10-2016</EndDate>
</Details>
<Details>
<ID>user1</ID>
<StartDate>23-10-2016</StartDate>
<EndDate>24-10-2016</EndDate>
</Details>
<Details>
<ID>user2</ID>
<StartDate>23-10-2016</StartDate>
<EndDate>22-11-2016</EndDate>
</Details>
</Info>
现在我需要将EndDate
节点与今天的日期进行比较。如果EndDate小于今天的日期,那么我需要删除整个Details
父节点。对于例如:我们假设strDate
是一个具有今天日期的字符串。
下面的代码获取了EndDate的所有值,现在,我如何比较字符串值和循环xml元素并删除它们。
object[] arr = xDos.Descendants("Details").Elements("EndDate").
Select(element => element.Value).ToArray();
现在,与今天的日期相比,应删除整个部分。
<Details>
<ID>user</ID>
<StartDate>23-10-2016</StartDate>
<EndDate>22-10-2016</EndDate>
</Details>
真的很感激任何有关此事的建议。
更新1:
XDocument xDos = XDocument.Load(Server.MapPath("~/Info.xml"));
XElement xDo = XElement.Load(Server.MapPath("~/Info.xml"));
List<XElement> arr = xDo.Descendants("Details").Where(n => DateTime.ParseExact(n.Element("EndDate").Value + "", "dd-MM-yyyy", CultureInfo.InvariantCulture) < DateTime.Today.Date).ToList<XElement>();
for (int i = 0; i < arr.Count(); i++)
{
XElement ele = arr[i];
ele.Remove();
}
xDos.Save(Server.MapPath("~/Info.xml"));