首页 > 代码库 > 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 }
Xml帮助类
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。