在学习了c#语法及常用类库后,学习了实际运用中的xml序列化
序列化就是格式化数据,用一个统一的格式保存数据,所以xml是严格区分大小写的。
这里要注意的是XML只序列化对象的公共属性和字段。在XML序列化时,私有字段和其他实例对象就丢失了。
在编程中如果要序列化要添加系统引用,xml序列化命名空间在System.Xml.Serialization下
觉得xml只要分清了数据的节点,多练习之后逻辑上并不难
序列化范例:
先注册一个文件流
FileStream file = new FileStream("D:\\xmlSer.xml", FileMode.Create, FileAccess.Write);
using (file)
{
// 序列化时,使用的是List集合,所以typeof中应放置List<>类型
利用XmlSerializer进行初始化,声明时构造参数是序列化对象类型
XmlSerializer xml = new XmlSerializer(typeof(List<Person>));
Serialize参数为文件流及要序列化对象
xml.Serialize(file, persons);
}
如果要将序列化文件转换回对象使用,Deserialize参数为文件流
List<Person> ps = (List<Person>)xml.Deserialize(file);
linqtoxml学习范例
要引用System.Xml.Linq;命名空间
// 要有一个XML文档
XDocument xdoc = new XDocument();
// 有了文档以后,需要有一个根
XElement xRoot = new XElement("root");
// 将根加到文档中
xdoc.Add(xRoot);
// 下面开始加人
XElement xPerson1 = new XElement("Person");
XElement xName1 = new XElement("Name");
XElement xAge1 = new XElement("Age");
XElement xGender1 = new XElement("Gender");
// 节点有了,没有数据
xName1.SetValue("张三");
xAge1.SetValue(18);
xGender1.SetValue('男');
// 设定Person的属性
XAttribute xAtt = new XAttribute("id", "0001");
// 将属性加到Person中
xPerson1.Add(xAtt);
// 将节点加到Person中去
xPerson1.Add(xName1, xAge1, xGender1);
// 将Person加到根节点中
xRoot.Add(xPerson1);
// 保存结果
xdoc.Save("D:\\person.xml");
序列化就是格式化数据,用一个统一的格式保存数据,所以xml是严格区分大小写的。
这里要注意的是XML只序列化对象的公共属性和字段。在XML序列化时,私有字段和其他实例对象就丢失了。
在编程中如果要序列化要添加系统引用,xml序列化命名空间在System.Xml.Serialization下
觉得xml只要分清了数据的节点,多练习之后逻辑上并不难
序列化范例:
先注册一个文件流
FileStream file = new FileStream("D:\\xmlSer.xml", FileMode.Create, FileAccess.Write);
using (file)
{
// 序列化时,使用的是List集合,所以typeof中应放置List<>类型
利用XmlSerializer进行初始化,声明时构造参数是序列化对象类型
XmlSerializer xml = new XmlSerializer(typeof(List<Person>));
Serialize参数为文件流及要序列化对象
xml.Serialize(file, persons);
}
如果要将序列化文件转换回对象使用,Deserialize参数为文件流
List<Person> ps = (List<Person>)xml.Deserialize(file);
linqtoxml学习范例
要引用System.Xml.Linq;命名空间
// 要有一个XML文档
XDocument xdoc = new XDocument();
// 有了文档以后,需要有一个根
XElement xRoot = new XElement("root");
// 将根加到文档中
xdoc.Add(xRoot);
// 下面开始加人
XElement xPerson1 = new XElement("Person");
XElement xName1 = new XElement("Name");
XElement xAge1 = new XElement("Age");
XElement xGender1 = new XElement("Gender");
// 节点有了,没有数据
xName1.SetValue("张三");
xAge1.SetValue(18);
xGender1.SetValue('男');
// 设定Person的属性
XAttribute xAtt = new XAttribute("id", "0001");
// 将属性加到Person中
xPerson1.Add(xAtt);
// 将节点加到Person中去
xPerson1.Add(xName1, xAge1, xGender1);
// 将Person加到根节点中
xRoot.Add(xPerson1);
// 保存结果
xdoc.Save("D:\\person.xml");