Xml封装操作类

public class XmlData
    {
        /// <summary>
        /// 读取指定位置的Xml文件,返回DataSet(带数据构架)
        /// </summary>
        /// <param name="Path">Xml文件的虚拟地址</param>
        /// <returns></returns>
        public static DataSet Read(string Path)
        {
            DataSet ds = new DataSet();
            ds.ReadXml(UrlPath.Path(Path));
            return ds;
        }
        /// <summary>
        /// 读取指定位置的Xml文件,返回DataView(带数据构架)
        /// </summary>
        /// <param name="Path">Xml文件的虚拟地址</param>
        /// <param name="Where">筛选条件</param>
        /// <returns></returns>
        public static DataView Read(string Path, string Where)
        {
            DataSet ds = new DataSet();
            ds.ReadXml(UrlPath.Path(Path));
            DataView Dv = new DataView(ds.Tables[0]);
            Dv.RowFilter = Where;
            return Dv;
        }
        /// <summary>
        /// 取出指定位置的Xml文件某个字段的值(带数据构架)
        /// </summary>
        /// <param name="Path">Xml文件的虚拟地址</param>
        /// <param name="Where">筛选条件</param>
        /// <param name="Field">要得到值的字段名</param>
        /// <returns></returns>
        public static object Query(string Path, string Where, string Field)
        {
            DataSet ds = new DataSet();
            ds.ReadXml(UrlPath.Path(Path));
            DataView pp = new DataView(ds.Tables[0]);
            pp.RowFilter = Where;
            return pp[0][Field].ToString();
        }
        /// <summary>
        /// 取出指定位置的Xml文件指定字段字符串的值(带数据构架,)
        /// </summary>
        /// <param name="Path">文件的虚拟地址</param>
        /// <param name="Where">筛选条件</param>
        /// <param name="Field">要得到值的字段名的字符串</param>
        /// <returns></returns>
        public static string[] Query(string Path, string Where, string[] Field)
        {
            DataSet ds = new DataSet();
            ds.ReadXml(UrlPath.Path(Path));
            DataView pp = new DataView(ds.Tables[0]);
            pp.RowFilter = Where;
            List<string> list = new List<string>();
            foreach (string a in Field)
            {
                list.Add(pp[0][a].ToString());
            }
            return list.ToArray();
        }
        /// <summary>
        /// 修改appSettings指定键的值
        /// </summary>
        /// <param name="Path">文件的虚拟地址</param>
        /// <param name="Key">要修改键</param>
        /// <param name="Value">要修改的值</param>
        /// <returns></returns>
        public static void AppModify(string Path, string Key, string Value)
        {
            string XPath = "/configuration/appSettings/add[@key='Count']";
            XmlDocument doc = new XmlDocument();
            doc.Load(UrlPath.Path(Path));
            XmlNode AddKey = doc.SelectSingleNode((XPath.Replace("Count", Key)));
            if (AddKey == null)
            {
                throw new ArgumentException("没有找到<add key=" + Key + " value=.../>的配置节");
            }
            AddKey.Attributes["value"].InnerText = Value;
            doc.Save(UrlPath.Path(Path));
        }
        /// <summary>
        /// 读取一个appSettings指定键的值
        /// </summary>
        /// <param name="Path">文件的虚拟地址</param>
        /// <param name="Key">要去取键</param>
        /// <returns></returns>
        public static string AppString(string Path, string Key)
        {
            string XPath = "/configuration/appSettings/add[@key='Count']";
            XmlDocument doc = new XmlDocument();
            doc.Load(UrlPath.Path(Path));
            XmlNode AddKey = doc.SelectSingleNode((XPath.Replace("Count", Key)));
            if (AddKey == null)
            {
                throw new ArgumentException("没有找到<add key=" + Key + " value=.../>的配置节");
            }
            return AddKey.Attributes["value"].InnerText;
        }
    }

posted @ 2010-06-24 12:18  davidDJT  阅读(579)  评论(0)    收藏  举报