zoukankan      html  css  js  c++  java
  • 转载把DataSet、DataTable、DataView格式转换成XML字符串、XML文件

    public class DataToXml

        {

            /**//// <summary>

            /// 将DataTable对象转换成XML字符串

            /// </summary>

            /// <param name="dt">DataTable对象</param>

            /// <returns>XML字符串</returns>

            public static string CDataToXml(DataTable dt)

            {

                if (dt != null)

                {

                    MemoryStream ms = null;

                    XmlTextWriter XmlWt = null;

                    try

                    {

                        ms = new MemoryStream();

                        //根据ms实例化XmlWt

                        XmlWt = new XmlTextWriter(ms, Encoding.Unicode);

                        //获取ds中的数据

                        dt.WriteXml(XmlWt);

                        int count = (int)ms.Length;

                        byte[] temp = new byte[count];

                        ms.Seek(0, SeekOrigin.Begin);

                        ms.Read(temp, 0, count);

                        //返回Unicode编码的文本

                        UnicodeEncoding ucode = new 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 "";

                }

            }

            /**//// <summary>

            /// 将DataSet对象中指定的Table转换成XML字符串

            /// </summary>

            /// <param name="ds">DataSet对象</param>

            /// <param name="tableIndex">DataSet对象中的Table索引</param>

            /// <returns>XML字符串</returns>

            public static string CDataToXml(DataSet ds, int tableIndex)

            {

                if (tableIndex != -1)

                {

                    return CDataToXml(ds.Tables[tableIndex]);

                }

                else

                {

                    return CDataToXml(ds.Tables[0]);

                }

            }

            /**//// <summary>

            /// 将DataSet对象转换成XML字符串

            /// </summary>

            /// <param name="ds">DataSet对象</param>

            /// <returns>XML字符串</returns>

            public static string CDataToXml(DataSet ds)

            {

                return CDataToXml(ds, -1);

            }

            /**//// <summary>

            /// 将DataView对象转换成XML字符串

            /// </summary>

            /// <param name="dv">DataView对象</param>

            /// <returns>XML字符串</returns>

            public static string CDataToXml(DataView dv)

            {

                return CDataToXml(dv.Table);

            }

            /**//// <summary>

            /// 将DataSet对象数据保存为XML文件

            /// </summary>

            /// <param name="dt">DataSet</param>

            /// <param name="xmlFilePath">XML文件路径</param>

            /// <returns>bool值</returns>

            public static bool CDataToXmlFile(DataTable dt, string xmlFilePath)

            {

                if ((dt != null) && (!string.IsNullOrEmpty(xmlFilePath)))

                {

                    string path = HttpContext.Current.Server.MapPath(xmlFilePath);

                    MemoryStream ms = null;

                    XmlTextWriter XmlWt = null;

                    try

                    {

                        ms = new MemoryStream();

                        //根据ms实例化XmlWt

                        XmlWt = new XmlTextWriter(ms, Encoding.Unicode);

                        //获取ds中的数据

                        dt.WriteXml(XmlWt);

                        int count = (int)ms.Length;

                        byte[] temp = new byte[count];

                        ms.Seek(0, SeekOrigin.Begin);

                        ms.Read(temp, 0, count);

                        //返回Unicode编码的文本

                        UnicodeEncoding ucode = new UnicodeEncoding();

                        //写文件

                        StreamWriter sw = new StreamWriter(path);

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

                        sw.WriteLine(ucode.GetString(temp).Trim());

                        sw.Close();

                        return true;

                    }

                    catch (System.Exception ex)

                    {

                        throw ex;

                    }

                    finally

                    {

                        //释放资源

                        if (XmlWt != null)

                        {

                            XmlWt.Close();

                            ms.Close();

                            ms.Dispose();

                        }

                    }

                }

                else

                {

                    return false;

                }

            }

            /**//// <summary>

            /// 将DataSet对象中指定的Table转换成XML文件

            /// </summary>

            /// <param name="ds">DataSet对象</param>

            /// <param name="tableIndex">DataSet对象中的Table索引</param>

            /// <param name="xmlFilePath">xml文件路径</param>

            /// <returns>bool]值</returns>

            public static bool CDataToXmlFile(DataSet ds, int tableIndex, string xmlFilePath)

            {

                if (tableIndex != -1)

                {

                    return CDataToXmlFile(ds.Tables[tableIndex], xmlFilePath);

                }

                else

                {

                    return CDataToXmlFile(ds.Tables[0], xmlFilePath);

                }

            }

            /**//// <summary>

            /// 将DataSet对象转换成XML文件

            /// </summary>

            /// <param name="ds">DataSet对象</param>

            /// <param name="xmlFilePath">xml文件路径</param>

            /// <returns>bool]值</returns>

            public static bool CDataToXmlFile(DataSet ds, string xmlFilePath)

            {

                return CDataToXmlFile(ds, -1, xmlFilePath);

            }

            /**//// <summary>

            /// 将DataView对象转换成XML文件

            /// </summary>

            /// <param name="dv">DataView对象</param>

            /// <param name="xmlFilePath">xml文件路径</param>

            /// <returns>bool]值</returns>

            public static bool CDataToXmlFile(DataView dv, string xmlFilePath)

            {

                return CDataToXmlFile(dv.Table, xmlFilePath);

            }

        }

    /**//// <summary>

        /// XML形式的字符串、XML文江转换成DataSet、DataTable格式

        /// </summary>

        public class XmlToData

        {

            /**//// <summary>

            /// 将Xml内容字符串转换成DataSet对象

            /// </summary>

            /// <param name="xmlStr">Xml内容字符串</param>

            /// <returns>DataSet对象</returns>

            public static DataSet CXmlToDataSet(string xmlStr)

            {

                if (!string.IsNullOrEmpty(xmlStr))

                {

                    StringReader StrStream = null;

                    XmlTextReader Xmlrdr = null;

                    try

                    {

                        DataSet ds = new DataSet();

                        //读取字符串中的信息

                        StrStream = new StringReader(xmlStr);

                        //获取StrStream中的数据

                        Xmlrdr = new XmlTextReader(StrStream);

                        //ds获取Xmlrdr中的数据

                        ds.ReadXml(Xmlrdr);

                        return ds;

                    }

                    catch (Exception e)

                    {

                        throw e;

                    }

                    finally

                    {

                        //释放资源

                        if (Xmlrdr != null)

                        {

                            Xmlrdr.Close();

                            StrStream.Close();

                            StrStream.Dispose();

                        }

                    }

                }

                else

                {

                    return null;

                }

            }

            /**//// <summary>

            /// 将Xml字符串转换成DataTable对象

            /// </summary>

            /// <param name="xmlStr">Xml字符串</param>

            /// <param name="tableIndex">Table表索引</param>

            /// <returns>DataTable对象</returns>

            public static DataTable CXmlToDatatTable(string xmlStr, int tableIndex)

            {

                return CXmlToDataSet(xmlStr).Tables[tableIndex];

            }

            /**//// <summary>

            /// 将Xml字符串转换成DataTable对象

            /// </summary>

            /// <param name="xmlStr">Xml字符串</param>

            /// <returns>DataTable对象</returns>

            public static DataTable CXmlToDatatTable(string xmlStr)

            {

                return CXmlToDataSet(xmlStr).Tables[0];

            }

            /**//// <summary>

            /// 读取Xml文件信息,并转换成DataSet对象

            /// </summary>

            /// <remarks>

            /// DataSet ds = new DataSet();

            /// ds = CXmlFileToDataSet("/XML/upload.xml");

            /// </remarks>

            /// <param name="xmlFilePath">Xml文件地址</param>

            /// <returns>DataSet对象</returns>

            public static DataSet CXmlFileToDataSet(string xmlFilePath)

            {

                if (!string.IsNullOrEmpty(xmlFilePath))

                {

                    string path = HttpContext.Current.Server.MapPath(xmlFilePath);

                    StringReader StrStream = null;

                    XmlTextReader Xmlrdr = null;

                    try

                    {

                        XmlDocument xmldoc = new XmlDocument();

                        //根据地址加载Xml文件

                        xmldoc.Load(path);

                        DataSet ds = new DataSet();

                        //读取文件中的字符流

                        StrStream = new StringReader(xmldoc.InnerXml);

                        //获取StrStream中的数据

                        Xmlrdr = new XmlTextReader(StrStream);

                        //ds获取Xmlrdr中的数据

                        ds.ReadXml(Xmlrdr);

                        return ds;

                    }

                    catch (Exception e)

                    {

                        throw e;

                    }

                    finally

                    {

                        //释放资源

                        if (Xmlrdr != null)

                        {

                            Xmlrdr.Close();

                            StrStream.Close();

                            StrStream.Dispose();

                        }

                    }

                }

                else

                {

                    return null;

                }

            }

            /**//// <summary>

            /// 读取Xml文件信息,并转换成DataTable对象

            /// </summary>

            /// <param name="xmlFilePath">xml文江路径</param>

            /// <param name="tableIndex">Table索引</param>

            /// <returns>DataTable对象</returns>

            public static DataTable CXmlToDataTable(string xmlFilePath, int tableIndex)

            {

                return CXmlFileToDataSet(xmlFilePath).Tables[tableIndex];

            }

            /**//// <summary>

            /// 读取Xml文件信息,并转换成DataTable对象

            /// </summary>

            /// <param name="xmlFilePath">xml文江路径</param>

            /// <returns>DataTable对象</returns>

            public static DataTable CXmlToDataTable(string xmlFilePath)

            {

                return CXmlFileToDataSet(xmlFilePath).Tables[0];

            }

        }

    using System;

    using System.Data;

    using System.IO;

    using System.Xml;

    using System.Text;

    // 相应C#代码:

    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 = (int)stream.Length;

             byte[] arr = new byte[count];

             stream.Seek(0, SeekOrigin.Begin);

             stream.Read(arr, 0, count);

             UTF8Encoding utf = new UTF8Encoding();

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

         }

         catch

         {

             return String.Empty;

         }

         finally

         {

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

         }

    }

    private DataSet ConvertXMLToDataSet(string xmlData)

    {

       StringReader stream = null;

       XmlTextReader reader = null;

       try

       {

         DataSet xmlDS = new DataSet();

         stream = new StringReader(xmlData);

         reader = new XmlTextReader(stream);

         xmlDS.ReadXml(reader);

         return xmlDS;

       }

       catch (Exception ex)

       {

         string strTest = ex.Message;

         return null;

       }

       finally

       {

         if (reader != null)

         reader.Close();

       }

    }

    http://minuo.blog.hexun.com/35959878_d.html

  • 相关阅读:
    基于Form表单和AJAX的登录示例
    HTML表格与表单
    HTML基础
    如何在AWS中部署Java Web应用程序?
    AWS前沿云计算课程——快速学会云上部署及Web应用程序管理
    如何在AWS云上部署应用
    Java知识系统回顾整理01基础02面向对象02属性
    Java知识系统回顾整理01基础02面向对象01类和对象
    Java知识系统回顾整理01基础01第一个程序07Eclipse使用----找不到类如何解决?
    Java知识系统回顾整理01基础01第一个程序06Eclipse使用技巧
  • 原文地址:https://www.cnblogs.com/sunrise/p/1614534.html
Copyright © 2011-2022 走看看