zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    [转帖]J2ME程序开发全方位基础讲解汇总
    IWAM账号密码不一致引起IIS无法处理ASP文件
    [存档]J2ME中随机数字处理全攻略
    利用计划任务和VBS脚本实现自动WEB共享文件夹里的文件
    完美解决Java程序在 MOTO E680i 中声音文件播放
    J2ME中使用pauseApp控制手机临时退出JAVA程序
    Web页中使用MediaPlayer
    严重注意MSSQL视图跨数据库复制的问题
    Java下数字类型的转换
    项目开发:电话留言软件(20050717)
  • 原文地址:https://www.cnblogs.com/zhuyuchao/p/5891038.html
Copyright © 2011-2022 走看看