C#操作讀取、寫入XML文檔的實用方法
更新時間:2016年04月21日 14:16:55 作者:一個人的長征
這篇文章主要介紹了C#操作讀取、寫入XML文檔的實用方法,即即用.NET本身提供的Deserialize和Serialize進(jìn)行反序列化和序列化XML文檔,感興趣的小伙伴們可以參考一下
本文給大家分享一下C#操作(讀取、寫入)XML文檔的實用方法,這種方法主要是對比較規(guī)范的XML文檔進(jìn)行操作,因為它(XML文檔)和類對象是嚴(yán)格對應(yīng)的,否則在反序列或序列化的時候會出現(xiàn)錯誤。其他的不用多說,直接看示例代碼吧:
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("寫入成功");
}
}
}
運行結(jié)果如圖:

生成的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>
以上就是本文的全部內(nèi)容,希望對大家學(xué)習(xí)C#程序設(shè)計有所幫助。
相關(guān)文章
C#使用Sleep(Int32)方法實現(xiàn)動態(tài)顯示時間
這篇文章主要為大家詳細(xì)介紹了C#如何使用Sleep(Int32)方法實現(xiàn)動態(tài)顯示時間,文中的示例代碼講解詳細(xì),具有一定的借鑒價值,有需要的小伙伴可以參考下2024-01-01

