Xml与对象之间的序列化、反序列化
Xml与对象之间的序列化、反序列化
可读性高的Xml呢,这也是有办法的。具体的方法则是DataTable与Xml互转,该方法是从互联网摘录的。
/// <summary> /// 将DataTable对象转换成XML字符串 /// </summary> /// <param name="dt"> DataTable对象 </param> /// <returns> XML字符串 </returns> public static string DataToXml(DataTable dt) { if (dt != null ) { MemoryStream ms = null ; XmlTextWriter XmlWt = null ; try { ms = new MemoryStream(); // 根据ms实例化XmlWt XmlWt = new XmlTextWriter(ms, Encoding.Unicode); // 获取ds中的数据 dt.WriteXml(XmlWt); int count = ( int )ms.Length; byte [] temp = new byte [count]; ms.Seek( 0 , SeekOrigin.Begin); ms.Read(temp, 0 , count); // 返回Unicode编码的文本 UnicodeEncoding ucode = new UnicodeEncoding(); return ucode.GetString(temp).Trim(); } catch (Exception ex) { throw ex; } finally { // 释放资源 if (XmlWt != null ) { ms.Close(); ms.Dispose(); } } } else { return string .Empty; } } /// <summary> /// 将Xml内容字符串转换成DataTable对象 /// </summary> /// <param name="xmlStr"> Xml内容字符串 </param> /// <returns> DataTable对象 </returns> public static DataTable XmlToDataTable( string xmlStr) { if (! string .IsNullOrEmpty(xmlStr)) { StringReader StrStream = null ; XmlTextReader Xmlrdr = null ; try { DataSet ds = new DataSet(); // 读取字符串中的信息 StrStream = new StringReader(xmlStr); // 获取StrStream中的数据 Xmlrdr = new XmlTextReader(StrStream); // ds获取Xmlrdr中的数据 ds.ReadXml(Xmlrdr); return ds.Tables[ 0 ]; } catch (Exception ex) { throw ex; } finally { // 释放资源 if (Xmlrdr != null ) { Xmlrdr.Close(); StrStream.Close(); StrStream.Dispose(); } } } else { return null ; } }
再来看看序列化后的结果吧:
这样看起来,是不是清晰了很多。
测试代码下载
如果,您认为阅读这篇博客让您有些收获,不妨点击一下右下角的 【 推荐 】按钮。
感谢阅读,希望这篇文章能给你带来帮助!
分类: C#
作者: Leo_wl
出处: http://www.cnblogs.com/Leo_wl/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
版权信息查看更多关于Xml与对象之间的序列化、反序列化的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://www.haodehen.cn/did46107