• 光脚丫学LINQ(010):将内存中的对象转换为XML


    视频演示:http://u.115.com/file/f24db1fdfa

    通过 LINQ 查询,可以轻松地在内存中的数据结构、SQL 数据库、ADO.NET 数据集和 XML 流或文档之间转换数据。下面的示例将内存中的数据结构中的对象转换为 XML 元素。

    List<Student> Students = new List<Student>()   
    {   
        new Student {   
            FirstName="Svetlana",   
            LastName="Omelchenko",    
            ID=111,    
            Scores = new List<int>{97, 92, 81, 60}},   
        new Student {   
            FirstName="Claire",    
            LastName="O’Donnell",    
            ID=112,    
            Scores = new List<int>{75, 84, 91, 39}},   
        new Student {   
            FirstName="Sven",    
            LastName="Mortensen",    
            ID=113,    
            Scores = new List<int>{88, 94, 65, 91}},   
    };   
      
    // Create the query.   
    var StudentsToXML = new XElement("Root",   
        from student in Students   
        let ScoreString = String.Format("{0},{1},{2},{3}",   
            student.Scores[0],   
            student.Scores[1],   
            student.Scores[2],   
            student.Scores[3])   
        select new XElement("Student",   
                   new XElement("FirstName", student.FirstName),   
                   new XElement("LastName", student.LastName),   
                   new XElement("Scores", ScoreString)   
                )    
            );   
      
    // Execute the query.   
    Console.WriteLine(StudentsToXML);   
      
    // Keep the console open in debug mode.   
    Console.WriteLine("Press any key to exit.");   
    Console.ReadKey();  
    List<Student> Students = new List<Student>()
    {
        new Student {
            FirstName="Svetlana",
            LastName="Omelchenko", 
            ID=111, 
            Scores = new List<int>{97, 92, 81, 60}},
        new Student {
            FirstName="Claire", 
            LastName="O’Donnell", 
            ID=112, 
            Scores = new List<int>{75, 84, 91, 39}},
        new Student {
            FirstName="Sven", 
            LastName="Mortensen", 
            ID=113, 
            Scores = new List<int>{88, 94, 65, 91}},
    };
    
    // Create the query.
    var StudentsToXML = new XElement("Root",
        from student in Students
        let ScoreString = String.Format("{0},{1},{2},{3}",
            student.Scores[0],
            student.Scores[1],
            student.Scores[2],
            student.Scores[3])
        select new XElement("Student",
                   new XElement("FirstName", student.FirstName),
                   new XElement("LastName", student.LastName),
                   new XElement("Scores", ScoreString)
                ) 
            );
    
    // Execute the query.
    Console.WriteLine(StudentsToXML);
    
    // Keep the console open in debug mode.
    Console.WriteLine("Press any key to exit.");
    Console.ReadKey();
    

    此代码生成下面的 XML 输出:

    <Root>  
      <Student>  
        <FirstName>Svetlana</FirstName>  
        <LastName>Omelchenko</LastName>  
        <Scores>97,92,81,60</Scores>  
      </Student>  
      <Student>  
        <FirstName>Claire</FirstName>  
        <LastName>O’Donnell</LastName>  
        <Scores>75,84,91,39</Scores>  
      </Student>  
      <Student>  
        <FirstName>Sven</FirstName>  
        <LastName>Mortensen</LastName>  
        <Scores>88,94,65,91</Scores>  
      </Student>  
    </Root> 
  • 相关阅读:
    axis2 WebService的发布与调用
    Lucene、Compass学习以及与SSH的整合
    qsort函数应用大全
    Effective C++ ——模板和泛型编程
    Effective C++ ——继承与面向对象设计
    Effective C++ ——实现
    Effective C++ ——设计与声明
    Effective C++ ——资源管理
    Effective C++ ——构造/析构/赋值运算符
    Effective C++ ——让自己习惯C++
  • 原文地址:https://www.cnblogs.com/GJYSK/p/1864240.html
Copyright © 2020-2023  润新知