从XML删除重复项,然后另存为XML文件

ir

我得到了这段代码,打印了所有带有最新时间戳的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文件。

ush
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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章