• xml反序列化


         xml在程序开发中多用于数据储存或配置,在使用xml配置文件时,多会循环遍历xml节点然后在做处理,但是通常程序处理复杂可能不止一个循环,
    为了提高程序运行效率,可以把xml反序列化成对象,这样不仅使用方便而且代码量少运行效率高。
    
    
    <!--例xml-->
    <?xml version="1.0" encoding="UTF-8"?>
    <Table name="TA093_GTSJHS" excelIndex="0">  
      <Column name="TA093_13TKSSYL" type="numeric" length="9"/>
      <Column name="TA093_13TYHTKSYL" type="numeric" length="9"/>
      <Column name="TA093_13TKSHLL" type="numeric" length="5"/>
      <Column name="TA093_13GTRLSYL" type="numeric" length="9"/>
      <Column name="TA093_13TYHGTRLSYL" type="numeric" length="9"/>
      <Column name="TA093_13GTRLHLL" type="numeric" length="5"/>
      <Column name="TA093_13YQSJL" type="numeric" length="5"/>
      <Column name="TA093_13SO2SJL" type="numeric" length="5"/>
    </Table>
    //******************************************************************
    //准备条件,按照xml文件节点编写实体类
    /// <summary>
        /// xml文件Table节点类
        /// </summary>
        [Serializable]
        [XmlRoot("Table")]
        public class Table
        {
            [XmlElement("Column")]
            public List<Column> list//Column节点 相当于table节点属性  在这作泛型
            { get; set; }
            [XmlAttribute(AttributeName = "excelIndex")]
            public string excelIndex { get; set; }
    
        }    
    
            /// <summary>
            /// xml文件column节点类 
            /// </summary> 
            [Serializable]//指定该类是可序列化类 
            public class Column 
            { 
                [XmlAttribute(AttributeName = "name")]//该类成员序列化xml属性
                public string name { get; set; } 
                [XmlAttribute(AttributeName = "type")] 
                public string type { get; set; } 
                [XmlAttribute(AttributeName = "length")] 
                public string length { get; set; } 
            }
    
            /// <summary>
            /// xml反序列化
            /// </summary>
            /// <param name="type">类型</param>
            /// <param name="xmlPath">XML字符串</param>
            /// <returns></returns>
            public static object Deserialize(Type type, string xmlPath)
            {
                try
                {
                    using (StreamReader stream = new StreamReader(xmlPath))
                    {
                        XmlSerializer xs = new XmlSerializer(type);
                        return xs.Deserialize(stream);
                    }
                }
                catch (Exception)
                {
                    return null;
                }
            }




    
    

    调用xml反序列化方法:Table obj= Deserialize(typeof(Table), xmlPath) as Table;  //xml反序列化 表列集合

    这样我们就可以使用对象.属性的方法使用xml文件

    学无先后,达者为师
  • 相关阅读:
    PHP项目学习1
    常见的几种单例模式
    CGlib和JDK动态代理
    jar打包方法使用整理
    JVM内存分配原理
    JDK环境变量配置目录jre,jvm
    android学习笔记13——ExpandableListView
    android学习笔记12——ListView、ListActivity
    android学习笔记11——ScrollView
    android学习笔记十——TabHost
  • 原文地址:https://www.cnblogs.com/seanchang/p/5202749.html
Copyright © 2020-2023  润新知