传智播客.net培训420,XML学习记录

在学习了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");

猜你喜欢

转载自zhuogx.iteye.com/blog/1533120
今日推荐