马上加入IBC程序猿 各种源码随意下,各种教程随便看! 注册 每日签到 加入编程讨论群

C#教程 ASP.NET教程 C#视频教程程序源码享受不尽 C#技术求助 ASP.NET技术求助

【源码下载】 社群合作 申请版主 程序开发 【远程协助】 每天乐一乐 每日签到 【承接外包项目】 面试-葵花宝典下载

官方一群:

官方二群:

C#中读写Xml配置文件常用方法工具类

[复制链接]
查看2185 | 回复0 | 2019-9-17 11:30:15 | 显示全部楼层 |阅读模式

场景

偶然必要使用配置文件生存一些配置的属性,使其在下次打开时设置仍然生效。

这里以对xml配置文件的读写为例。

1.读取XML配置文。

2.写入XML配置文件。

3.匹配 XPath 表达式的第一个 XmlNode。

4.获取节点text。

5.根据xPath获取节点个数。

6.根据xPath获取节点列表。

以上功能只是根据本身实际业务封装的方法,其他方法可以根据本身的实际业务去封装。

实现

在项目目次下新建xml配置文件。

113348ydjzyu2awtyaayhu.jpg

代码:

  1. class ReadXMLConfigHelper
  2. {
  3. #region 读取XML配置文件
  4. /// <summary>
  5. /// 读取XML配置文件 失败返回null
  6. /// </summary>
  7. /// <param name="filePath">xml文件路径,相对于bin下debug目次</param>
  8. /// <returns>xml文档对象</returns>
  9. public static XmlDocument readXml(string filePath)
  10. {
  11. //获取可执行文件的路径-即bin目次下的debug或者release目次
  12. string context = System.Windows.Forms.Application.StartupPath;
  13. //拼接全路径
  14. string path = String.Concat(context, filePath);
  15. XmlDocument xml = new XmlDocument();
  16. //打开一个xml
  17. try
  18. {
  19. xml.Load(path);
  20. return xml;
  21. }
  22. catch (Exception ex)
  23. {
  24. Console.WriteLine(ex.Message);
  25. return null;
  26. }
  27. }
  28. #endregion
  29. #region 写入XML配置文件
  30. /// <summary>
  31. /// 写入XML配置文件 乐成返回True 失败返回false
  32. /// </summary>
  33. /// <param name="xml">xml对象</param>
  34. /// <param name="filePath">文件路径</param>
  35. /// <returns></returns>
  36. public static Boolean writeXml(XmlDocument xml , string filePath)
  37. {
  38. //获取可执行文件的路径-即bin目次下的debug或者release目次
  39. string context = System.Windows.Forms.Application.StartupPath;
  40. //拼接全路径
  41. string path = String.Concat(context, filePath);
  42. try
  43. {
  44. xml.Save(path);
  45. return true;
  46. }
  47. catch (Exception ex)
  48. {
  49. Console.WriteLine(ex.Message);
  50. return false;
  51. }
  52. }
  53. #endregion
  54. #region 匹配 XPath 表达式的第一个 XmlNode
  55. /// <summary>
  56. /// 匹配 XPath 表达式的第一个 XmlNode
  57. /// </summary>
  58. /// <param name="xml">xml文档对象</param>
  59. /// <param name="xPath">xPath-路径匹配表达式</param>
  60. /// <returns>xml节点对象失败返回Null</returns>
  61. public static XmlNode getXmlNode(XmlDocument xml,string xPath)
  62. {
  63. //选择匹配 XPath 表达式的第一个 XmlNode
  64. XmlNode xmlNode = xml.SelectSingleNode(xPath);
  65. //读取节点数据
  66. if (xmlNode != null)
  67. {
  68. return xmlNode;
  69. }
  70. else
  71. {
  72. return null;
  73. }
  74. }
  75. #endregion
  76. #region 获取节点text
  77. /// <summary>
  78. /// 获取节点text
  79. /// </summary>
  80. /// <param name="xml获取节点textNode">节点对象</param>
  81. /// <returns>返回null则失败,返回""则代表节点内容为空,乐成返回节点text</returns>
  82. public static string getNodeText(XmlNode xmlNode)
  83. {
  84. //读取节点数据
  85. if (xmlNode != null)
  86. {
  87. string nodeText = xmlNode.InnerText;
  88. if (nodeText != null)
  89. {
  90. return nodeText;
  91. }
  92. else
  93. {
  94. return "";
  95. }
  96. }
  97. else
  98. {
  99. return null;
  100. }
  101. }
  102. #endregion
  103. #region 根据xPath获取节点个数
  104. /// <summary>
  105. /// 根据xPath获取节点个数
  106. /// </summary>
  107. /// <param name="xml">xml文档对象</param>
  108. /// <param name="xPath">xPath表达式</param>
  109. /// <returns>返回符合xPath的节点数,没有则返回0</returns>
  110. public static int getCountByXpath(XmlDocument xml,string xPath)
  111. {
  112. //读取节点list
  113. XmlNodeList nodelist = xml.SelectNodes(xPath);
  114. if (nodelist != null)
  115. {
  116. return nodelist.Count;
  117. }
  118. else
  119. {
  120. return 0;
  121. }
  122. }
  123. #endregion
  124. #region 根据xPath获取节点列表
  125. /// <summary>
  126. /// 根据xPath获取节点列表
  127. /// </summary>
  128. /// <param name="xml">xml文档对象</param>
  129. /// <param name="xPath">xPath表达式</param>
  130. /// <returns>返回符合xPath的节点列表,失败返回null</returns>
  131. public static XmlNodeList getNodeListByXpath(XmlDocument xml, string xPath)
  132. {
  133. //读取节点list
  134. XmlNodeList nodelist = xml.SelectNodes(xPath);
  135. if (nodelist != null)
  136. {
  137. return nodelist;
  138. }
  139. else
  140. {
  141. return null;
  142. }
  143. }
  144. #endregion
  145. }
复制代码

调用示例:

  1. XmlDocument xml = ReadXMLConfigHelper.readXml(xmlFilePath);
  2. XmlNodeList nodeList = ReadXMLConfigHelper.getNodeListByXpath(xml, Global.RADIO_GROUP_COUNT_XPATH);
复制代码







来源:https://www.cnblogs.com/badaoliumangqizhi/archive/2019/09/16/11525950.html
C#论坛 www.ibcibc.com IBC编程社区
C#
C#论坛
IBC编程社区
*滑块验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则