写入或查询XML

public class OperationXML
    {
        #region 读取配置文件某项的值
        /// <summary>
        /// 读取配置文件某项的值
        /// </summary>
        /// <param name="key">Key的名称</param>
        /// <param name="configpath">路径</param>
        /// <param name="fileName">文件名</param>
        /// <param name="SingleNode">节点名称</param>
        /// <returns></returns>
        public static string GetConfigByfileName(string configpath, string fileName, string SingleNode, string key)
        {
            try
            {
                //string str = System.IO.Path.Combine(Application.StartupPath, "App.config");
                //获取配置文件的路径
                string str = configpath + "\\" + fileName;
                //定义XML
                XmlDocument xmlDOC = new XmlDocument();
                //加载App.config
                xmlDOC.Load(str);
                XmlNode xmlNod;
                XmlElement xmlele1;
                //查询appSettings节点中的信息
                xmlNod = xmlDOC.SelectSingleNode("//" + SingleNode);
                //查询字节点Key的信息
                xmlele1 = (XmlElement)xmlNod.SelectSingleNode("//add[@key='" + key + "']");
                //判断是否已经存在查询的子节点,存在则为读取出该子节点的信息,不存在则为返回空
                if (xmlele1 != null)
                {
                    return xmlele1.GetAttribute("value");
                }
                else
                {
                    return "";
                }
            }
            catch (Exception ex)
            {
                LogHelper.WriteLog(typeof(OperationXML), ex);
                return "";
            }
        }
        #endregion

        #region 修改配置文件
        /// <summary>
        /// 修改配置文件
        /// </summary>
        /// <param name="configpath">路径</param>
        /// <param name="fileName">文件名</param>
        /// <param name="SingleNode">节点名</param>
        /// <param name="key">Key的名称</param>
        /// <param name="value">Key名的节点中的value</param>
        public static void SetConfig(string configpath, string fileName, string SingleNode, string key, string value)
        {
            try
            {
                string str = configpath + "\\" + fileName;
                //定义XML
                XmlDocument xmlDOC = new XmlDocument();
                //加载App.config
                xmlDOC.Load(str);
                XmlNode xmlNod;
                XmlElement xmlele1;
                //查询appSettings节点中的信息
                xmlNod = xmlDOC.SelectSingleNode("//" + SingleNode);
                //查询字节点Key的信息
                xmlele1 = (XmlElement)xmlNod.SelectSingleNode("//add[@key='" + key + "']");
                //判断是否已经存在查询的子节点,存在则为读取出该子节点的信息,不存在则为返回空
                if (xmlele1 != null)
                {
                    xmlele1.SetAttribute("value", value);
                }
                else
                {

                }
                //保存上面的修改  
                xmlDOC.Save(str);
            }
            catch (Exception)
            {

            }
        }
        #endregion

        /// <summary>
        /// 
        /// </summary>
        /// <param name="configpath"></param>
        /// <returns></returns>
        public static string GetXMLByKey(string configpath, string fileName, string NodeName, string keyName)
        {
            try
            {
                string xmlurl = configpath + "\\" + fileName;
                XmlDocument document = new XmlDocument();
                document.Load(xmlurl);
                string lastname = "";
                XmlNode basicNode = document.DocumentElement;
                foreach (XmlNode node in basicNode.ChildNodes)
                {
                    string str= node.Name.ToString().Trim();
                    //在这里判断
                    if (node.Name.ToString().Trim() == NodeName)
                    {
                        foreach (XmlNode xmlnode in node.ChildNodes) {
                            if (xmlnode.Name.ToString().Trim() == keyName) {
                                lastname = xmlnode.InnerText;
                                return lastname;
                            }
                        }
                    }
                }
                return lastname;
            }
            catch (Exception ex)
            {
                LogHelper.WriteLog(typeof(OperationXML), ex);
                return "";
            }
        }
    }
View Code

 

posted @ 2016-04-29 17:24  寒月萧风  阅读(135)  评论(0编辑  收藏  举报