本文给大家分享一下C#操作(读取、写入)XML文档的实用方法,即用.NET本身提供的Deserialize和Serialize进行反序列化和序列化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 = ,
UserName = "张三",
UserPass = "FDASDFAS",
Email = "zhangsan@163.com",
RegTime = DateTime.Now
},
new UserInfo()
{
Id = ,
UserName = "李四",
UserPass = "FDASDFAS",
Email = "lisi@163.com",
RegTime = DateTime.Now
},
new UserInfo()
{
Id = ,
UserName = "王五",
UserPass = "FDASDFAS",
Email = "wangwu@163.com",
RegTime = DateTime.Now
},
new UserInfo()
{
Id = ,
UserName = "赵六",
UserPass = "FDASDFAS",
Email = "zhaoliu@163.com",
RegTime = DateTime.Now
},
new UserInfo()
{
Id = ,
UserName = "田七",
UserPass = "FDASDFAS",
Email = "tianqi@163.com",
RegTime = DateTime.Now
},
new UserInfo()
{
Id = ,
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>

.NET(C#)使用Serialize、Deserialize序列和反序列化XML文档的更多相关文章

  1. C#反序列化XML异常:在 XML文档(0, 0)中有一个错误“缺少根元素”

    Q: 在反序列化 Xml 字符串为 Xml 对象时,抛出如下异常. 即在 XML文档(0, 0)中有一个错误:缺少根元素. A: 首先看下代码: StringBuilder sb = new Stri ...

  2. XML反序列化出错,XML 文档(2, 2)中有错误

    XML转换为实体类的错误处理方案 一.错误描述: XML反序列化出错,XML 文档(2, 2)中有错误 二.解决方案: 在实体类的字段要加上XmlElement属性 三.具体实现: 1.XML文档 & ...

  3. Oracle 远程访问配置 在 Windows Forms 和 WPF 应用中使用 FontAwesome 图标 C#反序列化XML异常:在 XML文档(0, 0)中有一个错误“缺少根元素” C#[Win32&WinCE&WM]应用程序只能运行一个实例:MutexHelper Decimal类型截取保留N位小数向上取, Decimal类型截取保留N位小数并且不进行四舍五入操作

    Oracle 远程访问配置   服务端配置 如果不想自己写,可以通过 Net Manager 来配置. 以下配置文件中的 localhost 改为 ip 地址,否则,远程不能访问. 1.网络监听配置 ...

  4. 对象序列和反序列化Xml

    1. XmlArray和XmlArrayItem XmlArray和XmlArrayItem是不同的,XmlArray是指这个数组叫什么,XmlArrayItem 值数组的每个元素叫什么. <X ...

  5. C# 序列化反序列化XML的帮助类

    以下是一个包装的用于序列化反序列化XML和C# 对象的类.  public class XmlSerializeHelper<T>     {         #region Serial ...

  6. C#序列化与反序列化(Serialize,Deserialize)实例详解

    这篇文章主要介绍了C#序列化与反序列化(Serialize,Deserialize)的方法,实例分析了C#序列化与反序列化的常见技巧,需要的朋友可以参考下 本文实例讲述了C#序列化与反序列化(Seri ...

  7. C# xml数组的序列和反序列化

    先来看xml <?xml version="1.0"?> <root xmlns:xsi="http://www.w3.org/2001/XMLSche ...

  8. 对类参数的序列化和反序列化XML

    /// <summary> /// Xml序列化与反序列化 /// </summary> public class XmlUtil { #region 反序列化 /// < ...

  9. JAVA序列化和反序列化XML

    package com.lss.utils; import java.beans.XMLDecoder; import java.beans.XMLEncoder; import java.io.Bu ...

随机推荐

  1. Azure Storage架构介绍

    Windows Azure Storage由三个重要部分或者说三种存储数据服务组成,它们是:Windows Azure Blob.Windows Azure Table和Windows Azure Q ...

  2. 导出txt文件

    <?php Header( "Content-type: application/octet-stream "); Header( "Accept-Ranges: ...

  3. 33-hadoop-cdh搭建coudemanager安装

    http://www.aboutyun.com/thread-9219-1-1.html  非常强大的博客 ! ! ! 1, cdh简介 CDH (Cloudera’s Distribution, i ...

  4. Maven 入门——认识 Maven

    Maven /ˈmāvən/ ,可以翻译成"专家",是一款来自 Apache 组织的开源项目,用于项目管理.主要服务于基于 Java 平台的项目构建.依赖管理和项目信息管理. 构建 ...

  5. Bootstrap in ASP.NET MVC 5

    一,新建ASP.NET MVC 5 项目 Bootstrap 文件分布 引入到页面 1.定义.注意:不要包含有.min.的文件名称,会被忽略,因为在发布的时候编译器会加载min版的文件 2.在母版页中 ...

  6. xml Schema include

    first.xsd <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs=&q ...

  7. OSI与TCP/IP模型

    1 OSI参考模型 谈到网络不能不谈OSI参考模型,虽然OSI参考模型的实际应用意义不是很大,但其的确对于理解网络协议内部的运作很有帮助,也为我们学习网络协议提供了一个很好的参考.在现实网络世界里,T ...

  8. Oracle存储过程编译卡死的解决方法

    转自: https://www.cnblogs.com/liang-ling/p/5395249.html 解决方法如下: 1:查V$DB_OBJECT_CACHE SELECT * FROM V$D ...

  9. tomcat之日志切割

    日志分割 场景:日志量比较大,且研发程序没有设置分卷 1.配置样例: 文件路径:/etc/logrotate.d/tomcat /data/logs/catalina.out { daily comp ...

  10. http缓存详解,http缓存推荐方案

    前言 通过本文,你将了解到http缓存机制是怎样的,no-cache到底有没有缓存,地址栏回车,F5,ctrl+F5的区别,以及当下较为推荐的缓存方案等. 自从和前端组的同事一起整了个前端扫盲计划,想 ...