C#操作读取、写入XML文档的实用方法

前端技术 2023/09/08 C#

本文给大家分享一下C#操作(读取、写入)XML文档的实用方法,这种方法主要是对比较规范的XML文档进行操作,因为它(XML文档)和类对象是严格对应的,否则在反序列或序列化的时候会出现错误。其他的不用多说,直接看示例代码吧:

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xml.Serialization;

namespace _01XMLSerialize
{
  class Program
  {
    private static List<UserInfo> list = new List<UserInfo>()
    {
      new UserInfo()
      {
        Id = 1,
        UserName = \"张三\",
        UserPass = \"FDASDFAS\",
        Email = \"zhangsan@163.com\",
        RegTime = DateTime.Now
      },
      new UserInfo()
      {
        Id = 2,
        UserName = \"李四\",
        UserPass = \"FDASDFAS\",
        Email = \"lisi@163.com\",
        RegTime = DateTime.Now
      },
      new UserInfo()
      {
        Id = 3,
        UserName = \"王五\",
        UserPass = \"FDASDFAS\",
        Email = \"wangwu@163.com\",
        RegTime = DateTime.Now
      },
      new UserInfo()
      {
        Id = 4,
        UserName = \"赵六\",
        UserPass = \"FDASDFAS\",
        Email = \"zhaoliu@163.com\",
        RegTime = DateTime.Now
      },
      new UserInfo()
      {
        Id = 5,
        UserName = \"田七\",
        UserPass = \"FDASDFAS\",
        Email = \"tianqi@163.com\",
        RegTime = DateTime.Now
      },
      new UserInfo()
      {
        Id = 6,
        UserName = \"王八\",
        UserPass = \"FDASDFAS\",
        Email = \"wangba@163.com\",
        RegTime = DateTime.Now
      }
    };
    static void Main(string[] args)
    {
      //序列化对象生成文件
      WriteSingleXml();

      //反序列化文件生成对象
      ReadListXml();

      Console.ReadKey();
    }

    /// <summary>
    /// 从XML文件中反序列化对象
    /// </summary>
    private static void ReadListXml()
    {
      //反序列化文件
      Console.WriteLine(\"反序列化XML文件为集合\");
      var reader = new XmlSerializer(typeof(List<UserInfo>));

      using (var fs = File.OpenRead(\"UserInfo.xml\"))
      {
        var result = reader.Deserialize(fs) as List<UserInfo>;

        result.ForEach(Console.WriteLine);
      }
      Console.WriteLine(\"反序列化成功\");
    }

    /// <summary>
    /// 序列化对象到XML文件
    /// </summary>
    private static void WriteSingleXml()
    {
      //序列化集合为xml文件
      Console.WriteLine(\"序列化集合为XML文件\");

      var reader = new XmlSerializer(typeof(List<UserInfo>));
      //写入文件
      using (var fs = File.OpenWrite(\"UserInfo.xml\"))
      {
        reader.Serialize(fs, list);
      }

      Console.WriteLine(\"写入成功\");
    }
  }
}

运行结果如图:

生成的XML文档如下:

<?xml version=\"1.0\"?>
<ArrayOfUserInfo xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\">
 <UserInfo>
  <Id>1</Id>
  <UserName>张三</UserName>
  <UserPass>FDASDFAS</UserPass>
  <Email>zhangsan@163.com</Email>
  <RegTime>2016-04-21T09:15:58.5576551+08:00</RegTime>
 </UserInfo>
 <UserInfo>
  <Id>2</Id>
  <UserName>李四</UserName>
  <UserPass>FDASDFAS</UserPass>
  <Email>lisi@163.com</Email>
  <RegTime>2016-04-21T09:15:58.5576551+08:00</RegTime>
 </UserInfo>
 <UserInfo>
  <Id>3</Id>
  <UserName>王五</UserName>
  <UserPass>FDASDFAS</UserPass>
  <Email>wangwu@163.com</Email>
  <RegTime>2016-04-21T09:15:58.5576551+08:00</RegTime>
 </UserInfo>
 <UserInfo>
  <Id>4</Id>
  <UserName>赵六</UserName>
  <UserPass>FDASDFAS</UserPass>
  <Email>zhaoliu@163.com</Email>
  <RegTime>2016-04-21T09:15:58.5576551+08:00</RegTime>
 </UserInfo>
 <UserInfo>
  <Id>5</Id>
  <UserName>田七</UserName>
  <UserPass>FDASDFAS</UserPass>
  <Email>tianqi@163.com</Email>
  <RegTime>2016-04-21T09:15:58.5576551+08:00</RegTime>
 </UserInfo>
 <UserInfo>
  <Id>6</Id>
  <UserName>王八</UserName>
  <UserPass>FDASDFAS</UserPass>
  <Email>wangba@163.com</Email>
  <RegTime>2016-04-21T09:15:58.5576551+08:00</RegTime>
 </UserInfo>
</ArrayOfUserInfo>

以上就是本文的全部内容,希望对大家学习C#程序设计有所帮助。

本文地址:https://www.stayed.cn/item/22218

转载请注明出处。

本站部分内容来源于网络,如侵犯到您的权益,请 联系我

我的博客

人生若只如初见,何事秋风悲画扇。