首页 > 代码库 > Xml帮助类

Xml帮助类

 

技术分享
   public class XMLHelper    {        #region  将xml文件转换为object对象类型         /// <summary>        /// 将xml文件转换为object对象类型         /// </summary>        /// <param name="path">xml文件的路径</param>        /// <param name="type">要转换的类型的Type类型</param>        /// <returns></returns>        public static object ConvertXMLToObject(string path, Type type)        {            object obj = null;            using (StreamReader reader = new StreamReader(path))            {                string content = reader.ReadToEnd();                if (null == content)                {                    throw new ArgumentNullException("xml");                }                if (null == type)                {                    throw new ArgumentNullException("type");                }                XmlSerializer serializer = new XmlSerializer(type);                StringReader strReader = new StringReader(content);                XmlReader xreader = new XmlTextReader(strReader);                try                {                    obj = serializer.Deserialize(xreader);                }                catch(InvalidOperationException ie)                {                    throw new InvalidOperationException("Can not convert xml to object", ie);                }                finally                {                    xreader.Close();                }                return obj;            }        }        #endregion        #region  将object对象转成xml保存        /// <summary>        /// 将object对象转成xml保存        /// </summary>        /// <param name="path">保存到xml文件的路径</param>        /// <param name="obj">待转换的对象</param>        /// <param name="toBeIndented">xml是否缩进 true:缩进,false:不缩进</param>        public static void SaveObjectXML(string path, object obj, bool toBeIndented=true)        {            if (null == obj)            {                throw new ArgumentNullException("obj");            }            UTF8Encoding encoding = new UTF8Encoding(false);            XmlSerializer serializer = new XmlSerializer(obj.GetType());            MemoryStream stream = new MemoryStream();            XmlTextWriter writer = new XmlTextWriter(stream, encoding);            writer.Formatting = toBeIndented ? Formatting.Indented : Formatting.None;            try            {                serializer.Serialize(writer, obj);            }            catch (InvalidOperationException ie)            {                throw new InvalidOperationException("Can not convert object to xml.", ie);            }            finally            {                writer.Close();            }            string xml = encoding.GetString(stream.ToArray());            using (StreamWriter swriter = new StreamWriter(path))            {                swriter.Write(xml);            }        }         #endregion    }
View Code

 

Xml帮助类