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;
            }
  • 相关阅读:
    cache in c#
    c#解析xml
    自动执行任务管理---TaskManage
    IConfigurationSectionHandler 使用~
    Autofac
    黑苹果教程(四)———MAC OS 10.11+固态硬盘+自定义引导
    android安装Linux,玩转Android
    精通android(Pro Android 4)面试题总结(二)
    精通android(Pro Android 4)面试题总结(一)
    Mac上的词典扩充
  • 原文地址:https://www.cnblogs.com/hofmann/p/11756968.html
Copyright © 2011-2022 走看看