zoukankan      html  css  js  c++  java
  • C#中xml操作

    序列化成一个字符串:

    public static string XMLSerialize<T>(T entity)  
           {  
               StringBuilder buffer = new StringBuilder();  
                 
               XmlSerializer serializer = new XmlSerializer(typeof(T));  
               using (TextWriter writer = new StringWriter(buffer))  
               {  
                   serializer.Serialize(writer, entity);  
               }  
               
               return buffer.ToString();  
                 
           } 

    反序列化成对象:

        public static T DeXMLSerialize<T>(string xmlString)  
                {  
                    T cloneObject = default(T);  
          
                    StringBuilder buffer = new StringBuilder();  
                    buffer.Append(xmlString);  
          
                    XmlSerializer serializer = new XmlSerializer(typeof(T));  
          
                    using (TextReader reader = new StringReader(buffer.ToString()))  
                    {  
                        Object obj = serializer.Deserialize(reader);  
                        cloneObject = (T)obj;  
                    }  
          
                    return cloneObject;  
                }  

    利用MemoryStream的形式:

     public static string XmlSerialize<T>(T obj)  
        {  
            string xmlString = string.Empty;  
            XmlSerializer xmlSerializer = new XmlSerializer(typeof(T));  
            using (MemoryStream ms = new MemoryStream())  
            {  
                xmlSerializer.Serialize(ms, obj);  
                xmlString = Encoding.UTF8.GetString(ms.ToArray());  
            }  
            return xmlString;  
        }
      public static T XmlDeserialize<T>(string xmlString)  
        {  
            T t = default(T);  
            XmlSerializer xmlSerializer = new XmlSerializer(typeof(T));  
            using (Stream xmlStream = new MemoryStream(Encoding.UTF8.GetBytes(xmlString)))  
            {  
                using (XmlReader xmlReader = XmlReader.Create(xmlStream))  
                {  
                    Object obj = xmlSerializer.Deserialize(xmlReader);  
                    t = (T)obj;  
                }  
            }  
            return t;  
        }  

    生成文件:

    string strFile = @"c:/zero.xml";
                using (FileStream fs = new FileStream(strFile, FileMode.Create))
                {
                    XmlSerializer formatter = new XmlSerializer(typeof(T));
                    formatter.Serialize(fs, entity);
                }
    StringBuilder sb = new StringBuilder();
    System.IO.StringWriter writer = new System.IO.StringWriter(sb);
    
    XmlSerializer formatter = new XmlSerializer(typeof(T));
    formatter .Serialize(writer,entity );
  • 相关阅读:
    模糊查询和聚合函数
    数据查询基础
    使用RestSharp请求GBK编码的网站乱码(NetCore环境)
    使用VsCode的Rest Client进行请求测试
    基于c#发送Outlook邮件(仅SMTP版本)
    创建Gitblit本地服务器(For windows )01
    获取本地文件然后批量存储到数据库
    描点的改进:运用chart画图。
    获取ADO连接字符串
    lock(this)
  • 原文地址:https://www.cnblogs.com/zxiong/p/4548371.html
Copyright © 2011-2022 走看看