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

            /// <summary>
            /// xml序列化
            /// </summary>
            /// <typeparam name="T">类型</typeparam>
            /// <param name="obj"></param>
            /// <returns></returns>
            public static string XmlSerialize<T>(this T obj)
            {
                if (obj == null) throw new NullReferenceException("");
    
                var settings = new XmlWriterSettings()
                {
                    OmitXmlDeclaration = true,//去掉xml声明
                    Encoding = Encoding.Default
                };
                var output = new StringBuilder();
                using (XmlWriter writer = XmlWriter.Create(output, settings))
                {
                    ////去掉前缀和命名空间
                    var ns = new XmlSerializerNamespaces();
                    ns.Add(string.Empty, string.Empty);
    
                    var serializer = new XmlSerializer(obj.GetType());
                    serializer.Serialize(writer, obj, ns);
                }
                return output.ToString();
            }
    
            /// <summary>
            /// xml反序列化
            /// </summary>
            /// <typeparam name="T">返回对象类型</typeparam>
            /// <param name="strXML"></param>
            /// <returns></returns>
            public static T DeserializeXml<T>(this string strXML) where T : class
            {
                try
                {
                    using (StringReader sr = new StringReader(strXML))
                    {
                        XmlSerializer serializer = new XmlSerializer(typeof(T));
                        return serializer.Deserialize(sr) as T;
                    }
                }
                catch (Exception ex)
                {
                    return null;
                }
            }
            /// <summary>
            ///<![CDATA[ ]]>数据字段
            /// </summary>
            [XmlIgnore] //方式1,这里属性设置忽略
            public string HouseDetail { get; set; }
    
            [XmlElement("Housedetail")]
            public XmlNode[] CDataContent
            {
                get
                {
                    if (HouseDetail!=null)
                    {
                        return new XmlNode[]  {new XmlDocument().CreateCDataSection(HouseDetail)};
                    }
                    else
                    {
                        return null;
                    }
                }
                set
                {
                    HouseDetail =  value.First().Value;
                }
            }
    特殊字符处理
  • 相关阅读:
    Gradle在大型Java项目上的应用
    Spring MVC 构建入门级 Web 应用程序
    大公司最喜欢问的Java集合类面试题
    在Java中正确使用注释
    Java的wait(), notify()和notifyAll()使用心得
    Java中HashMap和TreeMap的区别深入理解
    初识PGM图片
    VS2013报错 error MSB8031解决方法
    matconvnet在MATLAB2013配置过程中遇到的问题
    配置VLFeat-0.9.20+MATLAB2013a
  • 原文地址:https://www.cnblogs.com/xxxin/p/9352906.html
Copyright © 2011-2022 走看看