zoukankan      html  css  js  c++  java
  • XML转化DS等

        public class XmlData
        {
            /// <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();
                        returnValue = returnValue.Substring(1, returnValue.Length - 1);
                        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内容字符串转换成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];
            }
        }

  • 相关阅读:
    UVa 1151 Buy or Build【最小生成树】
    UVa 216 Getting in Line【枚举排列】
    UVa 729 The Hamming Distance Problem【枚举排列】
    HDU 5214 Movie【贪心】
    HDU 5223 GCD
    POJ 1144 Network【割顶】
    UVa 11025 The broken pedometer【枚举子集】
    HDU 2515 Yanghee 的算术【找规律】
    Java基本语法
    Java环境变量,jdk和jre的区别,面向对象语言编程
  • 原文地址:https://www.cnblogs.com/taikongbai/p/3722404.html
Copyright © 2011-2022 走看看