午夜国产狂喷潮在线观看|国产AⅤ精品一区二区久久|中文字幕AV中文字幕|国产看片高清在线

    XML與DataSet的相互轉(zhuǎn)換類
    來源:易賢網(wǎng) 閱讀:717 次 日期:2014-10-20 11:34:06
    溫馨提示:易賢網(wǎng)小編為您整理了“XML與DataSet的相互轉(zhuǎn)換類”,方便廣大網(wǎng)友查閱!

    送給大家一個XML與DataSet的相互轉(zhuǎn)換的類:

    XmlDatasetConvert 該類提供了四種方法:

    1、將xml對象內(nèi)容字符串轉(zhuǎn)換為DataSet

    2、將xml文件轉(zhuǎn)換為DataSet

    3、將DataSet轉(zhuǎn)換為xml對象字符串

    4、將DataSet轉(zhuǎn)換為xml文件

    XmlDatasetConvert.cs

    using System;

    using System.Collections.Generic;

    using System.Text;

    using System.Data;

    using System.IO;

    using System.Xml;

    namespace XmlDesign

    {

    class XmlDatasetConvert

    {

    //將xml對象內(nèi)容字符串轉(zhuǎn)換為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文件轉(zhuǎn)換為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轉(zhuǎn)換為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轉(zhuǎn)換為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("");

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

    sw.Close();

    }

    catch( System.Exception ex )

    {

    throw ex;

    }

    finally

    {

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

    }

    }

    }

    }

    使用示例

    using System;

    using System.Collections.Generic;

    using System.Text;

    using System.Xml;

    using System.Data;

    namespace XmlDesign

    {

    class Program

    {

    static void Main(string[] args)

    {

    DataSet ds = new DataSet();

    轉(zhuǎn)換一個XML文件(本地/網(wǎng)絡(luò)均可)為一個DataSet#region 轉(zhuǎn)換一個XML文件(本地/網(wǎng)絡(luò)均可)為一個DataSet

    //http://news.baidu.com/n?cmd=1&class=sportnews&tn=rss

    //F:/study/001CSharp_Study/002Source/XmlDesign/XmlDesign/Save_Plan.xml

    ds = XmlDatasetConvert.ConvertXMLFileToDataSet(@"

    Console.WriteLine("數(shù)據(jù)集名為/"{0}/",包含{1}個表", ds.DataSetName, ds.Tables.Count);

    foreach(DataTable dt in ds.Tables)

    {

    PrintTableName(dt.TableName);

    };

    #endregion

    構(gòu)造一個DataSet,并轉(zhuǎn)換為XML字符串#region 構(gòu)造一個DataSet,并轉(zhuǎn)換為XML字符串

    DataSet ds1 = new DataSet();

    DataTable dt1 = new DataTable();

    dt1.TableName = "test";

    dt1.Columns.Add("id");

    dt1.Columns.Add("name");

    dt1.Rows.Add("i001", "hekui");

    dt1.Rows.Add("i002", "liyang");

    DataTable dt2 = new DataTable();

    dt2.TableName = "test1";

    dt2.Columns.Add("bookid");

    dt2.Columns.Add("bookname");

    dt2.Rows.Add("b001", "書本1");

    dt2.Rows.Add("b002", "書本2");

    ds1.Tables.Add(dt1);

    ds1.Tables.Add(dt2);

    ds1.DataSetName = "方案";

    string xmlOut = XmlDatasetConvert.ConvertDataSetToXML(ds1);

    #endregion

    轉(zhuǎn)換一個XML字符串為一個DataSet#region 轉(zhuǎn)換一個XML字符串為一個DataSet

    DataSet ds2 = new DataSet();

    ds2 = XmlDatasetConvert.ConvertXMLToDataSet(xmlOut);

    Console.WriteLine("數(shù)據(jù)集名為/"{0}/",包含{1}個表", ds2.DataSetName, ds2.Tables.Count);

    foreach (DataTable dt in ds2.Tables)

    {

    PrintTableName(dt.TableName);

    };

    #endregion

    轉(zhuǎn)換一個Dataset為一個XML文件#region 轉(zhuǎn)換一個Dataset為一個XML文件

    XmlDatasetConvert.ConvertDataSetToXMLFile(ds2, "c://adadsda1.xml");

    #endregion

    Console.ReadLine();

    }

    private static void PrintTableName(string tableName)

    {

    Console.WriteLine(tableName);

    }

    }

    }

    更多信息請查看IT技術(shù)專欄

    更多信息請查看CMS教程
    易賢網(wǎng)手機(jī)網(wǎng)站地址:XML與DataSet的相互轉(zhuǎn)換類
    由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇?zhǔn)!
    相關(guān)閱讀CMS教程

    2025國考·省考課程試聽報名

    • 報班類型
    • 姓名
    • 手機(jī)號
    • 驗證碼
    關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機(jī)站點 | 投訴建議
    工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網(wǎng)安備53010202001879號 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號
    云南網(wǎng)警備案專用圖標(biāo)
    聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號:hfpxwx
    咨詢QQ:1093837350(9:00—18:00)版權(quán)所有:易賢網(wǎng)
    云南網(wǎng)警報警專用圖標(biāo)