加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

xml反序列化

发布时间:2020-12-15 22:25:02 所属栏目:百科 来源:网络整理
导读:xml在程序开发中多用于数据储存或配置,在使用xml配置文件时,多会循环遍历xml节点然后在做处理,但是通常程序处理复杂可能不止一个循环,为了提高程序运行效率,可以把xml反序列化成对象,这样不仅使用方便而且代码量少运行效率高。!--例xml--?xml version=
     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文件

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读