写入或查询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 ""; } } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)