xml与DataSet的互转换类

    技术2022-05-11  69

    <script type="text/javascript">function StorePage(){d=document;t=d.selection?(d.selection.type!='None'?d.selection.createRange().text:''):(d.getSelection?d.getSelection():'');void(keyit=window.open('http://www.365key.com/storeit.aspx?t='+escape(d.title)+'&u='+escape(d.location.href)+'&c='+escape(t),'keyit','scrollbars=no,width=475,height=575,left=75,top=20,status=no,resizable=yes'));keyit.focus();}</script> <script src="http://wz.csdn.net/javascripts/vote.js" type="text/javascript"></script> 以前在博客上发过,经人提醒DataSet已自带读写XML的功能,于是便删了,不过在实践中感觉封装一层后,使用起来还是蛮方便的。故再次重发。 using  System; using  System.Collections.Generic; using  System.Text; using  System.Data; using  System.IO; using  System.Xml; namespace  XmlDesign {    class XmlDatasetConvert    {        //将xml对象内容字符串转换为DataSet        public static DataSet ConvertXMLToDataSet(string xmlData)        {            StringReader stream = null;            XmlTextReader reader = null;            try            {                DataSet xmlDS = new DataSet();                stream = new StringReader(xmlData);                //从stream装载到XmlTextReader                reader = new XmlTextReader(stream);                xmlDS.ReadXml(reader);                return xmlDS;            }            catch (System.Exception ex)            {                throw ex;            }            finally            {                if (reader != null) reader.Close();            }        }        //将xml文件转换为DataSet        public static DataSet ConvertXMLFileToDataSet(string xmlFile)        {            StringReader stream = null;            XmlTextReader reader = null;            try            {                XmlDocument xmld = new XmlDocument();                xmld.Load(xmlFile);                DataSet xmlDS = new DataSet();                stream = new StringReader(xmld.InnerXml);                //从stream装载到XmlTextReader                reader = new XmlTextReader(stream);                xmlDS.ReadXml(reader);                //xmlDS.ReadXml(xmlFile);                return xmlDS;            }            catch (System.Exception ex)            {                throw ex;            }            finally            {                if (reader != null) reader.Close();            }        }        //将DataSet转换为xml对象字符串        public static string ConvertDataSetToXML(DataSet xmlDS)        {            MemoryStream stream = null;            XmlTextWriter writer = null;            try            {                stream = new MemoryStream();                //从stream装载到XmlTextReader                writer = new XmlTextWriter(stream, Encoding.Unicode);                //用WriteXml方法写入文件.                xmlDS.WriteXml(writer);                int count = (int)stream.Length;                byte[] arr = new byte[count];                stream.Seek(0, SeekOrigin.Begin);                stream.Read(arr, 0, count);                UnicodeEncoding utf = new UnicodeEncoding();                return utf.GetString(arr).Trim();            }            catch (System.Exception ex)            {                throw ex;            }            finally            {                if (writer != null) writer.Close();            }        }        //将DataSet转换为xml文件        public static void ConvertDataSetToXMLFile(DataSet xmlDS,string xmlFile)        {            MemoryStream stream = null;            XmlTextWriter writer = null;            try            {                stream = new MemoryStream();                //从stream装载到XmlTextReader                writer = new XmlTextWriter(stream, Encoding.Unicode);                //用WriteXml方法写入文件.                xmlDS.WriteXml(writer);                int count = (int)stream.Length;                byte[] arr = new byte[count];                stream.Seek(0, SeekOrigin.Begin);                stream.Read(arr, 0, count);                //返回Unicode编码的文本                UnicodeEncoding utf = new UnicodeEncoding();                StreamWriter sw = new StreamWriter(xmlFile);                sw.WriteLine("<?xml version=/"1.0/" encoding=/"utf-8/"?>");                sw.WriteLine(utf.GetString(arr).Trim());                sw.Close();            }            catch( System.Exception ex )            {                throw ex;            }            finally            {                if (writer != null) writer.Close();            }        }    }}  

    最新回复(0)