C#实现导出List数据到xml文件的方法【附demo源码下载】

作者:微wx笑 时间:2022-02-13 10:32:14 

本文实例讲述了C#实现导出List数据到xml文件的方法。分享给大家供大家参考,具体如下:

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

XmlSerializer 类 (System.Xml.Serialization)

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

C#实现导出List数据到xml文件的方法【附demo源码下载】

实体类代码:


/// <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#程序设计有所帮助。

标签:C#,List,xml
0
投稿

猜你喜欢

  • Java过滤器模式原理及用法实例

    2023-03-07 12:15:07
  • MyBatis-Plus工具使用之EntityWrapper解析

    2021-10-09 06:13:48
  • JavaSE中compare、compareTo的区别

    2021-12-28 09:37:47
  • Android 打开相册选择单张图片实现代码

    2023-05-29 17:06:38
  • TCP协议详解_动力节点Java学院整理

    2022-09-22 07:55:14
  • Android如何通过手机自动获取短信验证码

    2022-12-10 00:19:47
  • 解决Properties属性文件中的值有等号和换行的小问题

    2023-09-07 19:22:58
  • Spring MVC处理方法返回值过程解析

    2022-11-05 23:47:14
  • Java中如何避免sql注入实例详解

    2022-08-24 14:42:06
  • c# 单例模式的实现

    2023-06-12 01:16:44
  • C#实现XML与实体类之间相互转换的方法(序列化与反序列化)

    2022-05-14 03:39:32
  • 浅谈Maven镜像更换为阿里云中央仓库(精)

    2022-08-06 04:48:17
  • MyBatis字段名和属性名不一致的解决方法

    2022-12-15 18:15:22
  • 详解Mybatis中常用的约束文件

    2023-11-28 08:02:17
  • Java8生成时间方式及格式化时间的方法实例

    2021-07-28 19:58:52
  • java之路径分隔符介绍

    2022-12-14 22:35:23
  • Java编程中ArrayList源码分析

    2023-05-20 00:05:25
  • spring与disruptor集成的简单示例

    2021-12-16 11:01:41
  • 详解SpringCloud服务认证(JWT)

    2023-11-14 11:19:43
  • java 中 System.out.println()和System.out.write()的区别

    2021-09-17 04:30:52
  • asp之家 软件编程 m.aspxhome.com