DataSet与XML互转辅助类

来源:互联网 发布:用户行为分析 算法 编辑:程序博客网 时间:2024/05/01 05:17

DataSet与XML互转辅助类

using System;using System.Collections.Generic;using System.Text;using System.IO;using System.Xml;using System.Data;namespace YongDotNet.Public.ToolsClass{    /// <summary>    /// DataSet与XML互转辅助类    /// </summary>    public 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,0,arr.Length).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,0,arr.Length).Trim());                sw.Close();            }            catch (System.Exception ex)            {                throw ex;            }            finally            {                if (writer != null)                {                    writer.Close();                }            }        }    }}


0 0
原创粉丝点击