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

Model与XML互相转换

发布时间:2020-12-16 06:20:54 所属栏目:百科 来源:网络整理
导读:interface ISerialize { /// summary /// xml 转换为 model /// /summary /// typeparam name="T"/typeparam /// param name="xml"/param /// param name="model"/param /// returns/returns T XmlToModelT(string xml,T model); /// summary /// model 转换
interface ISerialize
    {
        /// <summary>
        /// xml 转换为 model
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="xml"></param>
        /// <param name="model"></param>
        /// <returns></returns>
        T XmlToModel<T>(string xml,T model);


        /// <summary>
        /// model 转换为xml
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="model"></param>
        /// <returns></returns>
        string ModelToXml<T>(T model);


        /// <summary>
        /// xml 转换为Table
        /// </summary>
        /// <param name="xml"></param>
        /// <returns></returns>
        DataTable XmlToTable(string xml);


        /// <summary>
        /// 获取对应XML节点的值
        /// </summary>
        /// <param name="?"></param>
        /// <returns></returns>
        string XmlAnalysis(string stringRoot,string xml);
    }




public class Serialize:ISerialize
    {

        public T XmlToModel<T>(string xml,T model)
        {
            StringReader xmlReader = new StringReader(xml);
            XmlSerializer xmlSer = new XmlSerializer(typeof(T));
            return (T)xmlSer.Deserialize(xmlReader);
        }

        public string ModelToXml<T>(T model)
        {
            MemoryStream stream = new MemoryStream();
            XmlSerializer xmlSer = new XmlSerializer(typeof(T));
            xmlSer.Serialize(stream,model);

            stream.Position = 0;
            StreamReader sr = new StreamReader(stream);
            return sr.ReadToEnd();
        }


        public System.Data.DataTable XmlToTable(string xml)
        {
            StringReader xmlReader = new StringReader(xml);
            DataSet ds = new DataSet();
            ds.ReadXml(xmlReader);
            return ds.Tables[0];
        }


        public string XmlAnalysis(string stringRoot,string xml)
        {
            XmlDocument doc = new XmlDocument();
            doc.LoadXml(xml);
            return doc.DocumentElement.SelectSingleNode(stringRoot).InnerXml.Trim();
        }
    }
 
ISerialize s = new Serialize();
      //把XML文件转换为对应的实体类


      string xml = @"<Depart>
              <DepartID>123</DepartID>
              <PerSons>
                <PerSon>
                  <name>张三</name>
                  <age>3</age>
                </PerSon>
                <PerSon>
                  <name>李斯</name>
                  <age>56</age>
                </PerSon>
              </PerSons>
            </Depart>";




      //var info = s.XmlToModel<Depart>(xml,new Depart());


     // string newXml = s.ModelToXml<Depart>(info);
     // var Info = (Depart)XmlUtil.Deserialize(typeof(Depart),xml);
      s.XmlToTable(xml);

(编辑:李大同)

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

    推荐文章
      热点阅读