日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

XML操作類

 悟靜 2012-12-08

using System;
using System.Xml;
using System.Data;

namespace XmlClass
    {
        /// <summary>
        /// XML相關(guān)通用功能
        /// </summary>
        public class XmlHelper
        {
            public XmlHelper() { }

            /// <summary>
            /// XML資源類型
            /// </summary>
            public enum XmlType
            {
                File,
                String
            };

            #region 讀取XML資源到DataSet中
            /// <summary>
            /// 讀取XML資源到DataSet中
            /// </summary>
            /// <param name="source">XML資源,文件為路徑,否則為XML字符串</param>
            /// <param name="xmlType">XML資源類型</param>
            /// <returns>DataSet</returns>
            public static DataSet GetDataSet(string source, XmlType xmlType)
            {
                DataSet ds = new DataSet();
                if (xmlType == XmlType.File)
                {
                    ds.ReadXml(source);
                }
                else
                {
                    XmlDocument xd = new XmlDocument();
                    xd.LoadXml(source);
                    XmlNodeReader xnr = new XmlNodeReader(xd);
                    ds.ReadXml(xnr);
                }
                return ds;
            }

            #endregion

            #region 獲取一個字符串xml文檔中的ds
            /// <summary>
            /// 獲取一個字符串xml文檔中的ds
            /// </summary>
            /// <param name="xml_string">含有xml信息的字符串</param>
            public static void get_XmlValue_ds(string xml_string, ref DataSet ds)
            {
                System.Xml.XmlDocument xd = new XmlDocument();
                xd.LoadXml(xml_string);
                XmlNodeReader xnr = new XmlNodeReader(xd);
                ds.ReadXml(xnr);
                xnr.Close();
                int a = ds.Tables.Count;
            }
            #endregion

            #region 讀取XML資源到DataTable中
            /// <summary>
            /// 讀取XML資源到DataTable中
            /// </summary>
            /// <param name="source">XML資源,文件為路徑,否則為XML字符串</param>
            /// <param name="xmlType">XML資源類型:文件,字符串</param>
            /// <param name="tableName">表名稱</param>
            /// <returns>DataTable</returns>
            public static DataTable GetTable(string source, XmlType xmlType, string tableName)
            {
                DataSet ds = new DataSet();
                if (xmlType == XmlType.File)
                {
                    ds.ReadXml(source);
                }
                else
                {
                    XmlDocument xd = new XmlDocument();
                    xd.LoadXml(source);
                    XmlNodeReader xnr = new XmlNodeReader(xd);
                    ds.ReadXml(xnr);
                }
                return ds.Tables[tableName];
            }
            #endregion

            #region 讀取XML資源中指定的DataTable的指定行指定列的值
            /// <summary>
            /// 讀取XML資源中指定的DataTable的指定行指定列的值
            /// </summary>
            /// <param name="source">XML資源</param>
            /// <param name="xmlType">XML資源類型:文件,字符串</param>
            /// <param name="tableName">表名</param>
            /// <param name="rowIndex">行號</param>
            /// <param name="colName">列名</param>
            /// <returns>值,不存在時返回Null</returns>
            public static object GetTableCell(string source, XmlType xmlType, string tableName, int rowIndex, string colName)
            {
                DataSet ds = new DataSet();
                if (xmlType == XmlType.File)
                {
                    ds.ReadXml(source);
                }
                else
                {
                    XmlDocument xd = new XmlDocument();
                    xd.LoadXml(source);
                    XmlNodeReader xnr = new XmlNodeReader(xd);
                    ds.ReadXml(xnr);
                }
                return ds.Tables[tableName].Rows[rowIndex][colName];
            }
            #endregion

            #region 讀取XML資源中指定的DataTable的指定行指定列的值
            /// <summary>
            /// 讀取XML資源中指定的DataTable的指定行指定列的值
            /// </summary>
            /// <param name="source">XML資源</param>
            /// <param name="xmlType">XML資源類型:文件,字符串</param>
            /// <param name="tableName">表名</param>
            /// <param name="rowIndex">行號</param>
            /// <param name="colIndex">列號</param>
            /// <returns>值,不存在時返回Null</returns>
            public static object GetTableCell(string source, XmlType xmlType, string tableName, int rowIndex, int colIndex)
            {
                DataSet ds = new DataSet();
                if (xmlType == XmlType.File)
                {
                    ds.ReadXml(source);
                }
                else
                {
                    XmlDocument xd = new XmlDocument();
                    xd.LoadXml(source);
                    XmlNodeReader xnr = new XmlNodeReader(xd);
                    ds.ReadXml(xnr);
                }
                return ds.Tables[tableName].Rows[rowIndex][colIndex];
            }
            #endregion

            #region 將DataTable寫入XML文件中
            /// <summary>
            /// 將DataTable寫入XML文件中
            /// </summary>
            /// <param name="dt">含有數(shù)據(jù)的DataTable</param>
            /// <param name="filePath">文件路徑</param>
            public static void SaveTableToFile(DataTable dt, string filePath)
            {
                DataSet ds = new DataSet("Config");
                ds.Tables.Add(dt.Copy());
                ds.WriteXml(filePath);
            }
            #endregion

            #region 將DataTable以指定的根結(jié)點名稱寫入文件
            /// <summary>
            /// 將DataTable以指定的根結(jié)點名稱寫入文件
            /// </summary>
            /// <param name="dt">含有數(shù)據(jù)的DataTable</param>
            /// <param name="rootName">根結(jié)點名稱</param>
            /// <param name="filePath">文件路徑</param>
            public static void SaveTableToFile(DataTable dt, string rootName, string filePath)
            {
                DataSet ds = new DataSet(rootName);
                ds.Tables.Add(dt.Copy());
                ds.WriteXml(filePath);
            }
            #endregion

            #region 使用DataSet方式更新XML文件節(jié)點
            /// <summary>
            /// 使用DataSet方式更新XML文件節(jié)點
            /// </summary>
            /// <param name="filePath">XML文件路徑</param>
            /// <param name="tableName">表名稱</param>
            /// <param name="rowIndex">行號</param>
            /// <param name="colName">列名</param>
            /// <param name="content">更新值</param>
            /// <returns>更新是否成功</returns>
            public static bool UpdateTableCell(string filePath, string tableName, int rowIndex, string colName, string content)
            {
                bool flag = false;
                DataSet ds = new DataSet();
                ds.ReadXml(filePath);
                DataTable dt = ds.Tables[tableName];

                if (dt.Rows[rowIndex][colName] != null)
                {
                    dt.Rows[rowIndex][colName] = content;
                    ds.WriteXml(filePath);
                    flag = true;
                }
                else
                {
                    flag = false;
                }
                return flag;
            }
            #endregion

            #region 使用DataSet方式更新XML文件節(jié)點
            /// <summary>
            /// 使用DataSet方式更新XML文件節(jié)點
            /// </summary>
            /// <param name="filePath">XML文件路徑</param>
            /// <param name="tableName">表名稱</param>
            /// <param name="rowIndex">行號</param>
            /// <param name="colIndex">列號</param>
            /// <param name="content">更新值</param>
            /// <returns>更新是否成功</returns>
            public static bool UpdateTableCell(string filePath, string tableName, int rowIndex, int colIndex, string content)
            {
                bool flag = false;

                DataSet ds = new DataSet();
                ds.ReadXml(filePath);
                DataTable dt = ds.Tables[tableName];

                if (dt.Rows[rowIndex][colIndex] != null)
                {
                    dt.Rows[rowIndex][colIndex] = content;
                    ds.WriteXml(filePath);
                    flag = true;
                }
                else
                {
                    flag = false;
                }
                return flag;
            }
            #endregion

            #region 讀取XML資源中的指定節(jié)點內(nèi)容
            /// <summary>
            /// 讀取XML資源中的指定節(jié)點內(nèi)容
            /// </summary>
            /// <param name="source">XML資源</param>
            /// <param name="xmlType">XML資源類型:文件,字符串</param>
            /// <param name="nodeName">節(jié)點名稱</param>
            /// <returns>節(jié)點內(nèi)容</returns>
            public static object GetNodeValue(string source, XmlType xmlType, string nodeName)
            {
                XmlDocument xd = new XmlDocument();
                if (xmlType == XmlType.File)
                {
                    xd.Load(source);
                }
                else
                {
                    xd.LoadXml(source);
                }
                XmlElement xe = xd.DocumentElement;
                XmlNode xn = xe.SelectSingleNode("http://" + nodeName);
                if (xn != null)
                {
                    return xn.InnerText;
                }
                else
                {
                    return null;
                }
            }

            /// <summary>
            /// 讀取XML資源中的指定節(jié)點內(nèi)容
            /// </summary>
            /// <param name="source">XML資源</param>
            /// <param name="nodeName">節(jié)點名稱</param>
            /// <returns>節(jié)點內(nèi)容</returns>
            public static object GetNodeValue(string source, string nodeName)
            {
                if (source == null || nodeName == null || source == "" || nodeName == "" || source.Length < nodeName.Length * 2)
                {
                    return null;
                }
                else
                {
                    int start = source.IndexOf("<" + nodeName + ">") + nodeName.Length + 2;
                    int end = source.IndexOf("</" + nodeName + ">");
                    if (start == -1 || end == -1)
                    {
                        return null;
                    }
                    else if (start >= end)
                    {
                        return null;
                    }
                    else
                    {
                        return source.Substring(start, end - start);
                    }
                }
            }
            #endregion

            #region 更新XML文件中的指定節(jié)點內(nèi)容
            /// <summary>
            /// 更新XML文件中的指定節(jié)點內(nèi)容
            /// </summary>
            /// <param name="filePath">文件路徑</param>
            /// <param name="nodeName">節(jié)點名稱</param>
            /// <param name="nodeValue">更新內(nèi)容</param>
            /// <returns>更新是否成功</returns>
            public static bool UpdateNode(string filePath, string nodeName, string nodeValue)
            {
                bool flag = false;

                XmlDocument xd = new XmlDocument();
                xd.Load(filePath);
                XmlElement xe = xd.DocumentElement;
                XmlNode xn = xe.SelectSingleNode("http://" + nodeName);
                if (xn != null)
                {
                    xn.InnerText = nodeValue;
                    flag = true;
                }
                else
                {
                    flag = false;
                }
                return flag;
            }
            #endregion

            #region 操作xml文件中指定節(jié)點的數(shù)據(jù)
            /// <summary>
            /// 獲得xml文件中指定節(jié)點的節(jié)點數(shù)據(jù)
            /// </summary>
            /// <param name="TableName"></param>
            /// <returns></returns>
            public static string GetNodeInfoByNodeName(string path, string nodeName)
            {
                string XmlString = "";
                XmlDocument xml = new XmlDocument();
                xml.Load(path);
                System.Xml.XmlElement root = xml.DocumentElement;
                System.Xml.XmlNode node = root.SelectSingleNode("http://" + nodeName);
                if (node != null)
                {
                    XmlString = node.InnerText;
                }
                return XmlString;
            }
            #endregion
        }
    }

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約