write data to xml

 

 

复制代码
        public class Student
        {
            public int Id { get; set; }
            public string FirstName { get; set; }
            public string LastName { get; set; }
        }

        private DataTable ConvertDataToDataTable<T>(IEnumerable<T> list)
        {
            var type = typeof(T);
            var properties = type.GetProperties();
            var dataTable = new DataTable();
            dataTable.Columns.AddRange(properties.Select(x => new DataColumn(x.Name)).ToArray());
            foreach (var item in list)
            {
                var dataRow = dataTable.NewRow();
                foreach (var property in properties)
                {
                    dataRow[property.Name] = property.GetValue(item, null);
                }
                dataTable.Rows.Add(dataRow);
            }
            return dataTable;
        }

        [Test]
        public void XmlTest()
        {
            DataSet dataSet = new DataSet {DataSetName = "CustomDataSet"};
            Student student1 = new Student
            {
                Id = 1,
                FirstName = "Chuck",
                LastName = "Lu"
            };
            Student student2 = new Student()
            {
                Id = 2,
                FirstName = "Yong",
                LastName = "Zhang"
            };
            IEnumerable<Student> list = new List<Student>() { student1, student2 };
            var dataTable = ConvertDataToDataTable(list);
            dataTable.TableName = "Students";
            dataSet.Tables.Add(dataTable);
            string xml = dataSet.GetXml();
            Console.WriteLine(xml);
        }
复制代码

 

输出结果为:

复制代码
<CustomDataSet>
  <Students>
    <Id>1</Id>
    <FirstName>Chuck</FirstName>
    <LastName>Lu</LastName>
  </Students>
  <Students>
    <Id>2</Id>
    <FirstName>Yong</FirstName>
    <LastName>Zhang</LastName>
  </Students>
</CustomDataSet>
复制代码

 

作者:Chuck Lu    GitHub    
posted @   ChuckLu  阅读(279)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示