C#实现XML文件与DataTable、Dataset互转

一、DataTable转XML

        #region DataTableToXml
        /// <summary>
        /// 将DataTable对象转换成XML字符串
        /// </summary>
        /// <param name="ds">DataSet对象</param>
        /// <returns>XML字符串</returns>
        public static string DataTableToXml(DataTable dt,string sName)
        {
            if (dt != null)
            {
                MemoryStream ms = null;
                XmlTextWriter XmlWt = null;
                try
                {
                    ms = new MemoryStream();
                    //根据ms实例化XmlWt
                    XmlWt = new XmlTextWriter(ms, System.Text.Encoding.Unicode);
                    //获取ds中的数据
                    dt.TableName = Sql.IsEmptyString(sName) ? "dt2xml" : sName;
                    dt.WriteXml(XmlWt, XmlWriteMode.WriteSchema);
                    int count = (int)ms.Length;
                    byte[] temp = new byte[count];
                    ms.Seek(0, SeekOrigin.Begin);
                    ms.Read(temp, 0, count);
                    //返回Unicode编码的文本
                    System.Text.UnicodeEncoding ucode = new System.Text.UnicodeEncoding();
                    string returnValue = ucode.GetString(temp).Trim();
                    return returnValue;
                }
                catch (System.Exception ex)
                {
                    throw ex;
                }
                finally
                {
                    //释放资源
                    if (XmlWt != null)
                    {
                        XmlWt.Close();
                        ms.Close();
                        ms.Dispose();
                    }
                }
            }
            else
            {
                return "";
            }
        }
        #endregion

二、XML转Dataset

方法A:

        #region Xml To DataSet
        public static DataSet XmlToDataSet(string xmlString)
        {
            XmlDocument xmldoc = new XmlDocument();
            xmldoc.LoadXml(xmlString);
            StringReader stream = null;
            XmlTextReader reader = null;
            try
            {
                DataSet xmlDS = new DataSet();
                stream = new StringReader(xmldoc.InnerXml);
                reader = new XmlTextReader(stream);
                xmlDS.ReadXml(reader);
                reader.Close();
                return xmlDS;
            }
            catch (System.Exception ex)
            {
                reader.Close();
                throw ex;
            }
        }
        #endregion

方法B:

        private static  DataSet XMLToDataset()
        {
            string strDBXMLFile = @"F:\TestDir\XML\DBTEST.XML";
            DataSet dsXML = new DataSet();
            dsXML.ReadXml(strDBXMLFile);
            //某个节点名称的所有节点内容
             DataTable dtOneNote = dsXML.Tables["SMT"];
            return dsXML;
        }

三、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();
                }
            }

到此这篇关于C#实现XML文件与DataTable、Dataset互转的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • asp.net下用DataSet生成XML的问题

    格式限定符中往往有一些字母代表特点的意思 比如,在DateTime.ToString中,y代码年,M代表月,等等 那么如果ToString的结果我本身就需要这些字符又怎么办呢? 此时就需要使用转义字符,而且这个转义标记就是我们熟悉的"\" DateTime now = DateTime.Now; now.ToString("yyyy,MM,dd HH:mm:ffff");//2006,07,06 14:51:3425 now.ToString(@"\yea

  • C# DataSet的内容写成XML时如何格式化字段数据

    欲达此目的,可以采用下列两种作法: ◆使用XmlConvert类. ◆将一个XSLT转换套用至DataSet数据的XML表示. 程序范例 本范例是利用XmlConvert类来完成字段的格式化操作. 复制代码 代码如下: // 导入命名空间. using System.Xml; using System.Data.SqlClient; using System.IO; private void btnWriteDataSetToXml_Click(object sender, EventArgs

  • .NET实现XML与DataTable互转的实例代码

    复制代码 代码如下: private string ConvertDataTableToXML(DataTable xmlDS) { MemoryStream stream = null; XmlTextWriter writer = null; try { stream = new MemoryStream(); writer = new XmlTextWriter(stream, Encoding.Default); xmlDS.WriteXml(writer); int count = (

  • C# XML操作 代码大全(读XML,写XML,更新,删除节点,与dataset结合等)第1/2页

    已知有一个XML文件(bookstore.xml)如下: Corets, Eva 5.95 1.插入节点 往节点中插入一个节点: 复制代码 代码如下: XmlDocument xmlDoc=new XmlDocument(); xmlDoc.Load("bookstore.xml"); XmlNode root=xmlDoc.SelectSingleNode("bookstore");//查找 XmlElement xe1=xmlDoc.CreateElement(

  • C#从文件流读取xml文件到DataSet并显示的方法

    本文实例讲述了C#从文件流读取xml文件到DataSet并显示的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: DataSet ds= new DataSet (); FileStream fs = new FileStream (Server.MapPath=("somexml.xml"),FileMode.Open,FileAccess.Read); ds.ReadXml (fs); DataGrid1.DataSource = ds; DataGrid1.D

  • C#保存与读取DataTable信息到XML格式的方法

    本文实例讲述了C#保存与读取DataTable信息到XML格式的方法.分享给大家供大家参考.具体如下: 这里主要实现: 1.将DataTable中的信息保存到XML中 2.将以上述格式在XML中保存的信息读取到DataTable内 一.将DataTable的内容写入到XML文件中 /// <summary> /// 将DataTable的内容写入到XML文件中 /// </summary> /// <param name="dt">数据源</p

  • C#通过DataSet读写xml文件的方法

    本文实例讲述了C#通过DataSet读写xml文件的方法.分享给大家供大家参考.具体实现方法如下: DataSet ds = new DataSet(); //读取Xml文件 ds.ReadXml(Server.MapPath("xml/song.xml")); //生成Xml文件 ds.WriteXml(Server.MapPath("xml/song_bak.xml")); 希望本文所述对大家的C#程序设计有所帮助.

  • c#使用Dataset读取XML文件动态生成菜单的方法

    本文实例讲述了c#使用Dataset读取XML文件动态生成菜单的方法.分享给大家供大家参考.具体实现方法如下: Step 1:Form1 上添加一个ToolStripContainer控件 Step2:实现代码 private void Form2_Load(object sender, EventArgs e) { CMenuEx menu = new CMenuEx(); string sPath = "D://Menu.xml";//xml的内容 if (menu.FileExi

  • C#从数据库读取数据到DataSet并保存到xml文件的方法

    本文实例讲述了C#从数据库读取数据到DataSet并保存到xml文件的方法.分享给大家供大家参考.具体实现方法如下: DataSet有一个WriteXml方法可以直接将数据保存到xml文件 using System; using System.Data; using System.Xml; using System.Data.SqlClient; using System.IO; public class TestWriteXML { public static void Main() { St

  • C#实现XML文件与DataTable、Dataset互转

    一.DataTable转XML #region DataTableToXml /// <summary> /// 将DataTable对象转换成XML字符串 /// </summary> /// <param name="ds">DataSet对象</param> /// <returns>XML字符串</returns> public static string DataTableToXml(DataTable

  • asp.net使用DataSet的ReadXml读取XML文件及Stream流的方法

    本文实例讲述了asp.net使用DataSet的ReadXml读取XML文件及Stream流的方法.分享给大家供大家参考,具体如下: string strxml = "<xml><m><a>1</a><b>2</b></m><m><a>11</a><b>22</b></m><m><a>111</a><

  • C#实现xml文件的读取与写入简单实例

    本文实例讲述了C#实现xml文件的读取与写入方法.分享给大家供大家参考.具体如下: //DataTable DateSet 都可以用来读取xml数据和写入xml数据 protected voidButton1_Click(object sender, EventArgs e) { DataTabledt = new DataTable("Employee"); DataColumndcID = new DataColumn("ID", typeof(string))

  • asp.net实现XML文件读取数据绑定到DropDownList的方法

    本文实例讲述了asp.net实现XML文件读取数据绑定到DropDownList的方法.分享给大家供大家参考,具体如下: 1 .绑定DropDownList: ddl_language.DataSource = createDataSource(); ddl_language.DataTextField = "languageTextField"; ddl_language.DataValueField = "languageValueField"; ddl_lan

  • C# 读写XML文件实例代码

    C#史上最简单读写xml文件方式,创建控制台应用程序赋值代码,就可以运行,需要改动,请自行调整 using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Xml; namespace ConsoleApp1 { class Program { public cons

  • C#读写xml文件方法总结(超详细!)

    目录 C#写入xml文件 1.XmlDocument 2.DataSet对象里的值来生成XML文件 3.利用XmlSerializer来将类的属性值转换为XML文件的元素值. 示例:写入xml 1.创建xml文档 2 .增加节点 3 .修改节点: 4 .删除节点 c#读取xml文件 总结 C#写入xml文件 1.XmlDocument 1.我认为是最原始,最基本的一种:利用XmlDocument向一个XML文件里写节点,然后再利用XmlDocument保存文件.首先加载要写入的XML文件,但是如

随机推荐