天天看點

xml與DataSet的互轉換類

以前在部落格上發過,經人提醒DataSet已自帶讀寫XML的功能,于是便删了,

不過在實踐中感覺封裝一層後,使用起來還是蠻友善的。故再次重發。

xml與DataSet的互轉換類

using System;

xml與DataSet的互轉換類

using System.Collections.Generic;

xml與DataSet的互轉換類

using System.Text;

xml與DataSet的互轉換類

using System.Data;

xml與DataSet的互轉換類

using System.IO;

xml與DataSet的互轉換類

using System.Xml;

xml與DataSet的互轉換類
xml與DataSet的互轉換類

namespace XmlDesign

xml與DataSet的互轉換類
xml與DataSet的互轉換類
xml與DataSet的互轉換類

{

xml與DataSet的互轉換類

    class XmlDatasetConvert

xml與DataSet的互轉換類
xml與DataSet的互轉換類
xml與DataSet的互轉換類
xml與DataSet的互轉換類

        //将xml對象内容字元串轉換為DataSet

xml與DataSet的互轉換類

        public static DataSet ConvertXMLToDataSet(string xmlData)

xml與DataSet的互轉換類
xml與DataSet的互轉換類
xml與DataSet的互轉換類
xml與DataSet的互轉換類

            StringReader stream = null;

xml與DataSet的互轉換類

            XmlTextReader reader = null;

xml與DataSet的互轉換類

            try

xml與DataSet的互轉換類
xml與DataSet的互轉換類
xml與DataSet的互轉換類
xml與DataSet的互轉換類

                DataSet xmlDS = new DataSet();

xml與DataSet的互轉換類

                stream = new StringReader(xmlData);

xml與DataSet的互轉換類

                //從stream裝載到XmlTextReader

xml與DataSet的互轉換類

                reader = new XmlTextReader(stream);

xml與DataSet的互轉換類

                xmlDS.ReadXml(reader);

xml與DataSet的互轉換類

                return xmlDS;

xml與DataSet的互轉換類

            }

xml與DataSet的互轉換類

            catch (System.Exception ex)

xml與DataSet的互轉換類
xml與DataSet的互轉換類
xml與DataSet的互轉換類
xml與DataSet的互轉換類

                throw ex;

xml與DataSet的互轉換類
xml與DataSet的互轉換類

            finally

xml與DataSet的互轉換類
xml與DataSet的互轉換類
xml與DataSet的互轉換類
xml與DataSet的互轉換類

                if (reader != null) reader.Close();

xml與DataSet的互轉換類
xml與DataSet的互轉換類

        }

xml與DataSet的互轉換類
xml與DataSet的互轉換類

        //将xml檔案轉換為DataSet

xml與DataSet的互轉換類

        public static DataSet ConvertXMLFileToDataSet(string xmlFile)

xml與DataSet的互轉換類
xml與DataSet的互轉換類
xml與DataSet的互轉換類
xml與DataSet的互轉換類
xml與DataSet的互轉換類
xml與DataSet的互轉換類
xml與DataSet的互轉換類
xml與DataSet的互轉換類
xml與DataSet的互轉換類
xml與DataSet的互轉換類

                XmlDocument xmld = new XmlDocument();

xml與DataSet的互轉換類

                xmld.Load(xmlFile);

xml與DataSet的互轉換類
xml與DataSet的互轉換類
xml與DataSet的互轉換類

                stream = new StringReader(xmld.InnerXml);

xml與DataSet的互轉換類
xml與DataSet的互轉換類
xml與DataSet的互轉換類
xml與DataSet的互轉換類

                //xmlDS.ReadXml(xmlFile);

xml與DataSet的互轉換類
xml與DataSet的互轉換類
xml與DataSet的互轉換類
xml與DataSet的互轉換類
xml與DataSet的互轉換類
xml與DataSet的互轉換類
xml與DataSet的互轉換類
xml與DataSet的互轉換類
xml與DataSet的互轉換類
xml與DataSet的互轉換類
xml與DataSet的互轉換類
xml與DataSet的互轉換類
xml與DataSet的互轉換類
xml與DataSet的互轉換類
xml與DataSet的互轉換類
xml與DataSet的互轉換類
xml與DataSet的互轉換類

        //将DataSet轉換為xml對象字元串

xml與DataSet的互轉換類

        public static string ConvertDataSetToXML(DataSet xmlDS)

xml與DataSet的互轉換類
xml與DataSet的互轉換類
xml與DataSet的互轉換類
xml與DataSet的互轉換類

            MemoryStream stream = null;

xml與DataSet的互轉換類

            XmlTextWriter writer = null;

xml與DataSet的互轉換類
xml與DataSet的互轉換類
xml與DataSet的互轉換類
xml與DataSet的互轉換類
xml與DataSet的互轉換類
xml與DataSet的互轉換類

                stream = new MemoryStream();

xml與DataSet的互轉換類
xml與DataSet的互轉換類

                writer = new XmlTextWriter(stream, Encoding.Unicode);

xml與DataSet的互轉換類
xml與DataSet的互轉換類

                //用WriteXml方法寫入檔案.

xml與DataSet的互轉換類

                xmlDS.WriteXml(writer);

xml與DataSet的互轉換類

                int count = (int)stream.Length;

xml與DataSet的互轉換類

                byte[] arr = new byte[count];

xml與DataSet的互轉換類

                stream.Seek(0, SeekOrigin.Begin);

xml與DataSet的互轉換類

                stream.Read(arr, 0, count);

xml與DataSet的互轉換類
xml與DataSet的互轉換類

                UnicodeEncoding utf = new UnicodeEncoding();

xml與DataSet的互轉換類

                return utf.GetString(arr).Trim();

xml與DataSet的互轉換類
xml與DataSet的互轉換類
xml與DataSet的互轉換類
xml與DataSet的互轉換類
xml與DataSet的互轉換類
xml與DataSet的互轉換類
xml與DataSet的互轉換類
xml與DataSet的互轉換類
xml與DataSet的互轉換類
xml與DataSet的互轉換類
xml與DataSet的互轉換類
xml與DataSet的互轉換類

                if (writer != null) writer.Close();

xml與DataSet的互轉換類
xml與DataSet的互轉換類
xml與DataSet的互轉換類
xml與DataSet的互轉換類

        //将DataSet轉換為xml檔案

xml與DataSet的互轉換類

        public static void ConvertDataSetToXMLFile(DataSet xmlDS,string xmlFile)

xml與DataSet的互轉換類
xml與DataSet的互轉換類
xml與DataSet的互轉換類
xml與DataSet的互轉換類
xml與DataSet的互轉換類
xml與DataSet的互轉換類
xml與DataSet的互轉換類
xml與DataSet的互轉換類
xml與DataSet的互轉換類
xml與DataSet的互轉換類
xml與DataSet的互轉換類
xml與DataSet的互轉換類
xml與DataSet的互轉換類
xml與DataSet的互轉換類
xml與DataSet的互轉換類
xml與DataSet的互轉換類
xml與DataSet的互轉換類
xml與DataSet的互轉換類
xml與DataSet的互轉換類
xml與DataSet的互轉換類
xml與DataSet的互轉換類
xml與DataSet的互轉換類

                //傳回Unicode編碼的文本

xml與DataSet的互轉換類
xml與DataSet的互轉換類

                StreamWriter sw = new StreamWriter(xmlFile);

xml與DataSet的互轉換類

                sw.WriteLine("<?xml version=\"1.0\" encoding=\"utf-8\"?>");

xml與DataSet的互轉換類

                sw.WriteLine(utf.GetString(arr).Trim());

xml與DataSet的互轉換類

                sw.Close();

xml與DataSet的互轉換類
xml與DataSet的互轉換類

            catch( System.Exception ex )

xml與DataSet的互轉換類
xml與DataSet的互轉換類
xml與DataSet的互轉換類
xml與DataSet的互轉換類
xml與DataSet的互轉換類
xml與DataSet的互轉換類
xml與DataSet的互轉換類
xml與DataSet的互轉換類
xml與DataSet的互轉換類
xml與DataSet的互轉換類
xml與DataSet的互轉換類
xml與DataSet的互轉換類
xml與DataSet的互轉換類
xml與DataSet的互轉換類

    }

xml與DataSet的互轉換類

}

xml與DataSet的互轉換類