有一个XML文件,有若干列,其中有一列是日期,这列的日期可能3、5个,每个相同的日期可能有若干行。例如:
1. A 2012/7/26
2. B 2012/7/27
3. C 2012/7/26
4. D 2012/7/27
5. E 2012/7/28
6. F 2012/7/26
XML文件的内容如上。现在要把它拆分按日期拆分中不同的文件。例如:
文件1.xml
1. A 2012/7/26
2. C 2012/7/26
3. F 2012/7/26
文件2.xml
1. B 2012/7/27
2. D 2012/7/27
文件3.xml
1. E 2012/7/28

解决方案 »

  1.   

    本帖最后由 net_lover 于 2012-07-27 13:34:58 编辑
      

  2.   

    先将XML文件的内容取出来存放在集合里,
    再分组就OK了
    DEMO:class Program
        {
            static void Main(string[] args)
            {
                //XML文件取出来放集合里,这里只是模似
                List<Test> list = new List<Test>()
                {
                new Test(){Id=1,Selector="A",Date=DateTime.Parse("2012/7/26")},
                new Test(){Id=2,Selector="B",Date=DateTime.Parse("2012/7/27")},
                new Test(){Id=3,Selector="C",Date=DateTime.Parse("2012/7/26")},
                new Test(){Id=4,Selector="D",Date=DateTime.Parse("2012/7/27")},
                new Test(){Id=5,Selector="E",Date=DateTime.Parse("2012/7/28")},
                new Test(){Id=6,Selector="F",Date=DateTime.Parse("2012/7/26")},
                };
               var collection=list.GroupBy(a => a.Date); //按时间分组就OK
               int i = 1;
               foreach (var item in collection)
               {
                   Console.WriteLine("文件"+i+".xml");
                   foreach (var item2 in item)
                   {
                       string str = string.Format("{0,-5}{1,-10}{2,-20}",item2.Id,item2.Selector,item2.Date.ToString());
                       Console.WriteLine(str);
                   }
                   i++;
               }            Console.Read();
            }       
            
        }    public class Test
        {
            public int Id { get; set; }        public string Selector { get; set; }        public DateTime Date { get; set; }
           
        }输出:文件1.xml
    1. A 2012/7/26
    2. C 2012/7/26
    3. F 2012/7/26
    文件2.xml
    1. B 2012/7/27
    2. D 2012/7/27
    文件3.xml
    1. E 2012/7/28