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

灰太狼 2024-04-19 08:45 106阅读 0赞

场景

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

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

1.读取XML配置文。

2.写入XML配置文件。

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

4.获取节点text。

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

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

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

实现

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

20190916102103580.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://blog.csdn.net/badao_liumang_qizhi
关注公众号
霸道的程序猿
获取编程相关电子书、教程推送与免费下载。

发表评论

表情:
评论列表 (有 0 条评论,106人围观)

还没有评论,来说两句吧...

相关阅读

    相关 使用C++XML文件

    使用C++读写XML文件 简介: 在现代软件开发中,XML(可扩展标记语言)经常被用作数据交换和存储的格式。本篇文章将介绍如何使用C++编程语言读取和写入XML文件。

    相关 C配置文件

            在项目开发中,经常需要读取应用配置文件的初始化参数,用于应用在启动前进行一些初始化配置。比如:Eclipse,参数项包含主题、字体大小、颜色、Jdk安装位置、自