我得到了这段代码,打印了所有带有最新时间戳的ID。但是我想删除不是最新时间戳的元素,然后另存为XML文件。还有更多的属性,然后是ID和时间戳,所以我想删除那些不是最新时间戳的对象。
static void Main(string[] args)
{
XElement xelement = XElement.Load("data.xml");
var employees = xelement.Elements()
.Select(e => new
{
Name = e.Element("Employee").Value,
ChangeTimeStamp = DateTime.Parse(e.Element("ChangeTimeStamp").Value)
})
.GroupBy(e => e.Name)
.Select(g => new
{
Name = g.Key,
ChangeTimeStamp = g.Max(e => e.ChangeTimeStamp)
});
foreach (var employee in employees)
{
Console.WriteLine("{0} {1}", employee.Name, employee.ChangeTimeStamp);
}
Console.ReadKey();
}
}
我想创建具有最新时间戳和所有其他属性的所有唯一ID的xml文件。
public static void Main(string[] args)
{
var xelement = XElement.Load("data.xml");
var employees = xelement.Elements()
.Select(e => new
{
Element = e,
Name = e.Element("Employee").Value,
ChangeTimeStamp = DateTime.Parse(e.Element("ChangeTimeStamp").Value)
})
.GroupBy(e => e.Name)
.Select(g =>
{
var maxTimestamp = g.Max(e => e.ChangeTimeStamp);
foreach (var e in g)
{
if (e.ChangeTimeStamp < maxTimestamp)
{
e.Element.Remove();
}
}
return new
{
Name = g.Key,
ChangeTimeStamp = maxTimestamp
};
});
xelement.Save(yourPathToSave);
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句