好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

Xml与对象之间的序列化、反序列化

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与对象之间的序列化、反序列化的详细内容...

  阅读:36次