zoukankan      html  css  js  c++  java
  • c# xml序列化和反序列化

            static public string SerializeToXml<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());
                //}
                Encoding encoding = Encoding.UTF8;
                using (MemoryStream memoryStream = new MemoryStream())
                {
                    XmlSerializer xmlSerializer = new XmlSerializer(obj.GetType());
                    XmlSerializerNamespaces namespaces = new XmlSerializerNamespaces();
                    namespaces.Add("", "");
    
                    XmlTextWriter xmlTextWriter = new XmlTextWriter(memoryStream, encoding);
    
                    xmlTextWriter.Formatting = Formatting.None;
                    xmlSerializer.Serialize(xmlTextWriter, obj, namespaces);
                    xmlTextWriter.Flush();
                    xmlTextWriter.Close();
    
                    xmlString = encoding.GetString(memoryStream.ToArray());
                }
                return xmlString;
            }
    
            static public T DeserializeXml<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;
            }
    
            static public string VerifyXml(string xml)
            {
                string result = string.Empty;
                try
                {
                    XmlDocument doc = new XmlDocument();
                    doc.LoadXml(xml);
                }
                catch (XmlException ex) { result = ex.Message; }
                return result;
            }
    
            static public string GetXmlNodeText(string xml, string nodeName)
            {
                string result = string.Empty;
                try
                {
                    var doc = new XmlDocument();
                    doc.LoadXml(xml);
                    XmlNode entityName = doc.SelectSingleNode(nodeName);
                    if (entityName != null)
                    {
                        result = entityName.InnerText.Trim();
                    }
                }
                catch { }
                return result;
            }
  • 相关阅读:
    ARP攻击原理与解决
    如何查看数据库各种表oracle
    MyEclipse 8.0注册码
    oracle数据库导入导出
    输出设备已满或不可用, 归档程序无法归档重做日志[oracle解决方法]
    句柄以及对象的比较java
    shutdown immediate 后无法启动实例问题解决
    马云经典语录
    海量数据处理分析_BI
    数据库迁移方案
  • 原文地址:https://www.cnblogs.com/hofmann/p/11756968.html
Copyright © 2011-2022 走看看