首页 > 代码库 > C#导出List数据到xml文件[附源码]

C#导出List数据到xml文件[附源码]

C#导出List数据到xml文件,这里主要用到的是:

XmlSerializer 类 (System.Xml.Serialization)

将对象序列化到 XML 文档中和从 XML 文档中反序列化对象。XmlSerializer 使您得以控制如何将对象编码到 XML 中。

实体类代码:

/// <summary>
    /// 用户实体类
    /// 
    /// 注意:类的访问修饰符必须是:public,否则会出现错误:
    /// 因其保护级别而不可访问。只能处理公共类型。
    /// </summary>
    [Serializable]
    public class UserModel
    {
        private long id = 1;

        private string name = "name";

        private int gender = 0;

        private int age = 20;

        private string userName = "userName";

        private string password = "password";

        public long Id
        {
            get { return id; }
            set { id = value; }
        }

        public string Name
        {
            get { return name; }
            set { name = value; }
        }

        public int Gender
        {
            get { return gender; }
            set { gender = value; }
        }

        public int Age
        {
            get { return age; }
            set { age = value; }
        }

        public string UserName
        {
            get { return userName; }
            set { userName = value; }
        }

        public string Password
        {
            get { return password; }
            set { password = value; }
        }
    }
导出代码:

        private void button1_Click(object sender, EventArgs e)
        {
            try
            {
                List<UserModel> list = new List<UserModel>();
                list.Add(new UserModel());
                list.Add(new UserModel());
                list.Add(new UserModel());
                list.Add(new UserModel());
                list.Add(new UserModel());
                list.Add(new UserModel());
                list.Add(new UserModel());
                list.Add(new UserModel());
                list.Add(new UserModel());
                list.Add(new UserModel());

                using (System.IO.StringWriter stringWriter = new StringWriter(new StringBuilder()))
                {
                    XmlSerializer xmlSerializer = new XmlSerializer(typeof(List<UserModel>));
                    xmlSerializer.Serialize(stringWriter, list);

                    FileStream fs = new FileStream("list_userModel.xml", FileMode.OpenOrCreate);
                    StreamWriter sw = new StreamWriter(fs);
                    sw.Write(stringWriter.ToString());
                    sw.Close();
                    fs.Close();
                    MessageBox.Show("写入文件成功!");
                }
            }
            catch (System.Exception ex)
            {
                System.Console.WriteLine("====================================");
                System.Console.WriteLine(ex.Message);
                System.Console.WriteLine(ex.StackTrace);
            }
        }
生成的XML文件内容:

<?xml version="1.0" encoding="utf-16"?>
<ArrayOfUserModel xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <UserModel>
    <Id>1</Id>
    <Name>name</Name>
    <Gender>0</Gender>
    <Age>20</Age>
    <UserName>userName</UserName>
    <Password>password</Password>
  </UserModel>
  <UserModel>
    <Id>1</Id>
    <Name>name</Name>
    <Gender>0</Gender>
    <Age>20</Age>
    <UserName>userName</UserName>
    <Password>password</Password>
  </UserModel>
  <UserModel>
    <Id>1</Id>
    <Name>name</Name>
    <Gender>0</Gender>
    <Age>20</Age>
    <UserName>userName</UserName>
    <Password>password</Password>
  </UserModel>
  <UserModel>
    <Id>1</Id>
    <Name>name</Name>
    <Gender>0</Gender>
    <Age>20</Age>
    <UserName>userName</UserName>
    <Password>password</Password>
  </UserModel>
  <UserModel>
    <Id>1</Id>
    <Name>name</Name>
    <Gender>0</Gender>
    <Age>20</Age>
    <UserName>userName</UserName>
    <Password>password</Password>
  </UserModel>
  <UserModel>
    <Id>1</Id>
    <Name>name</Name>
    <Gender>0</Gender>
    <Age>20</Age>
    <UserName>userName</UserName>
    <Password>password</Password>
  </UserModel>
  <UserModel>
    <Id>1</Id>
    <Name>name</Name>
    <Gender>0</Gender>
    <Age>20</Age>
    <UserName>userName</UserName>
    <Password>password</Password>
  </UserModel>
  <UserModel>
    <Id>1</Id>
    <Name>name</Name>
    <Gender>0</Gender>
    <Age>20</Age>
    <UserName>userName</UserName>
    <Password>password</Password>
  </UserModel>
  <UserModel>
    <Id>1</Id>
    <Name>name</Name>
    <Gender>0</Gender>
    <Age>20</Age>
    <UserName>userName</UserName>
    <Password>password</Password>
  </UserModel>
  <UserModel>
    <Id>1</Id>
    <Name>name</Name>
    <Gender>0</Gender>
    <Age>20</Age>
    <UserName>userName</UserName>
    <Password>password</Password>
  </UserModel>
</ArrayOfUserModel>
源码下载:

C#导出List数据到xml文件[附源码]