场景

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

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

1.读取XML配置文。

2.写入XML配置文件。

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

4.获取节点text。

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

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

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

实现

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

代码:

class ReadXMLConfigHelper
{
#region 读取XML配置文件
/// <summary>
/// 读取XML配置文件 失败返回null
/// </summary>
/// <param name="filePath">xml文件路径,相对于bin下debug目录</param>
/// <returns>xml文档对象</returns>
public static XmlDocument readXml(string filePath)
{
//获取可执行文件的路径-即bin目录下的debug或者release目录
string context = System.Windows.Forms.Application.StartupPath;
//拼接全路径
string path = String.Concat(context, filePath);
XmlDocument xml = new XmlDocument();
//打开一个xml
try
{
xml.Load(path);
return xml;
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
return null;
}
}
#endregion #region 写入XML配置文件
/// <summary>
/// 写入XML配置文件 成功返回True 失败返回false
/// </summary>
/// <param name="xml">xml对象</param>
/// <param name="filePath">文件路径</param>
/// <returns></returns>
public static Boolean writeXml(XmlDocument xml , string filePath)
{
//获取可执行文件的路径-即bin目录下的debug或者release目录
string context = System.Windows.Forms.Application.StartupPath;
//拼接全路径
string path = String.Concat(context, filePath);
try
{
xml.Save(path);
return true;
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
return false;
}
}
#endregion #region 匹配 XPath 表达式的第一个 XmlNode
/// <summary>
/// 匹配 XPath 表达式的第一个 XmlNode
/// </summary>
/// <param name="xml">xml文档对象</param>
/// <param name="xPath">xPath-路径匹配表达式</param>
/// <returns>xml节点对象失败返回Null</returns>
public static XmlNode getXmlNode(XmlDocument xml,string xPath)
{
//选择匹配 XPath 表达式的第一个 XmlNode
XmlNode xmlNode = xml.SelectSingleNode(xPath);
//读取节点数据
if (xmlNode != null)
{
return xmlNode;
}
else
{
return null;
}
}
#endregion #region 获取节点text
/// <summary>
/// 获取节点text
/// </summary>
/// <param name="xml获取节点textNode">节点对象</param>
/// <returns>返回null则失败,返回""则代表节点内容为空,成功返回节点text</returns>
public static string getNodeText(XmlNode xmlNode)
{
//读取节点数据
if (xmlNode != null)
{
string nodeText = xmlNode.InnerText;
if (nodeText != null)
{
return nodeText;
}
else
{
return "";
}
}
else
{
return null;
}
}
#endregion #region 根据xPath获取节点个数
/// <summary>
/// 根据xPath获取节点个数
/// </summary>
/// <param name="xml">xml文档对象</param>
/// <param name="xPath">xPath表达式</param>
/// <returns>返回符合xPath的节点数,没有则返回0</returns>
public static int getCountByXpath(XmlDocument xml,string xPath)
{
//读取节点list
XmlNodeList nodelist = xml.SelectNodes(xPath);
if (nodelist != null)
{
return nodelist.Count;
}
else
{
return ;
}
}
#endregion #region 根据xPath获取节点列表
/// <summary>
/// 根据xPath获取节点列表
/// </summary>
/// <param name="xml">xml文档对象</param>
/// <param name="xPath">xPath表达式</param>
/// <returns>返回符合xPath的节点列表,失败返回null</returns>
public static XmlNodeList getNodeListByXpath(XmlDocument xml, string xPath)
{
//读取节点list
XmlNodeList nodelist = xml.SelectNodes(xPath);
if (nodelist != null)
{
return nodelist;
}
else
{
return null;
}
}
#endregion }

调用示例:

XmlDocument xml = ReadXMLConfigHelper.readXml(xmlFilePath);

XmlNodeList nodeList = ReadXMLConfigHelper.getNodeListByXpath(xml, Global.RADIO_GROUP_COUNT_XPATH);

C#中读写Xml配置文件常用方法工具类的更多相关文章

  1. Java读取Maven工程下的配置文件,工具类

    Java开发中,经常需要在maven工程中读取src/main/resources下的配置文件: 思路如下: Class.getClassLoader() 返回类加载器ClassLoader,进而可以 ...

  2. Winform中自定义xml配置文件后对节点进行读取与写入

    场景 Winform中自定义xml配置文件,并配置获取文件路径: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/100522648 ...

  3. Java中的Xml配置文件(新手)

    Java中的Xml配置文件,本文是转发转发转发!重要的事情说三遍 一:概念 1.XML  Extensible markup Language 可拓展标记语言 2.功能:存储数据(配置文件,在网络中传 ...

  4. ssh整合思想初步 struts2与Spring的整合 struts2-spring-plugin-2.3.4.1.jar下载地址 自动加载Spring中的XML配置文件 Struts2下载地址

    首先需要JAR包 Spring整合Structs2的JAR包 struts2-spring-plugin-2.3.4.1.jar 下载地址 链接: https://pan.baidu.com/s/1o ...

  5. SPRING IN ACTION 第4版笔记-第二章WIRING BEANS-008-在Java配置文件中引入xml配置文件@Import、@ImportResource

    1. package soundsystem; import org.springframework.beans.factory.annotation.Autowired; public class ...

  6. mybatis 中的 xml 配置文件中 ‘<’、 ‘>’ 处理

    mybatis 中的 xml 配置文件中 '<'. '>' 处理 1.使用转义字符将 '<'. '>' 替换掉. 描述 字符 转义字符 小于号 < < 大于号 &g ...

  7. struts2中struts.xml配置文件详解【未整理】

    1.    深入Struts2的配置文件 本部分主要介绍struts.xml的常用配置. 1.1.    包配置: Struts2框架中核心组件就是Action.拦截器等,Struts2框架使用包来管 ...

  8. Winform中自定义xml配置文件,并配置获取文件路径

    场景 在Winform程序中,需要将一些配置项存到配置文件中,这时就需要自定义xml的配置文件格式.并在一些工具类中去获取配置文件的路径并加载其内容. 关注公众号霸道的程序猿获取编程相关电子书.教程推 ...

  9. Nutz中那些好用的工具类

    Nutz 是国产的精品开源框架,它全无依赖,只以1兆多的身材,就可以实现SSH全部功能的90%以上.内容主要涵盖了:Ioc.Aop.MVC.Dao.Json等WEB开发的方方面面.  它不仅轻巧,而且 ...

随机推荐

  1. 笑谈CSS的伪元素

    今晚上我们来简单的聊一聊CSS的伪元素,多说无益,开聊 GG: 话说盘古开天辟地之时. QQ:嗨,咱今天还能讲的完吗?您给来点实际的啊. GG:要听实际的是吧,得嘞,那今天咱就来聊一聊CSS里的伪元素 ...

  2. 压力测试-jmeter

    1. 场景描述 新申请的服务器,要压测下python算法程序最多能执行多少条数据,有几年没用压力测试工具-jmeter了,重新下载了最新版本,记录下,也希望能帮到准备使用jmeter做压测的朋友. 2 ...

  3. Spark 系列(十四)—— Spark Streaming 基本操作

    一.案例引入 这里先引入一个基本的案例来演示流的创建:获取指定端口上的数据并进行词频统计.项目依赖和代码实现如下: <dependency> <groupId>org.apac ...

  4. Oracle、MySQL和Sqlserver的事务管理、分页和别名的区别

    1.在mysql中事务默认是自动提交的,只有设置autocommit为0的时候,才用自己commit(commit--rollback回滚) 2.但是在oracle中必须自己commit;不然就只能结 ...

  5. vscode 配置 nodejs 开发环境

    1.配置 cnpm 镜像 (国内淘宝镜像网速更快) npm install -g cnpm --registry=https://registry.npm.taobao.org 2.配置智能提示 安装 ...

  6. oracle 正则表达的使用

    最近遇到有个项目,需要根据文件存储的根目录地址来判断是在云端获取,还是本地获取, 先看下具体有几个不同的根目录: , , 'i') from pmc.designmaterial d 去重关键字:di ...

  7. Python模块——HashLib(摘要算法)与base64

    摘要算法(hashlib) Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等. 什么是摘要算法呢?摘要算法又称哈希算法.散列算法.它通过一个函数,把任意长度的数据转换为一个长度 ...

  8. jmeter学习笔记-----第一天

    环境简介:apache-jmeter-3.3    win10系统 一.Jmeter录制操作步骤: 1.工作台---添加HTTP代理服务器: 2.为自己笔记本的浏览器设置相同代理: 3.测试计划下-s ...

  9. 一文看懂ConstraintLayout的用法

    ConstraintLayout 相对于 RelativeLayout来说性能更好,布局上也更加灵活.在最新的Google Android开发文档中是推荐使用 ConstraintLayout的,下面 ...

  10. Hive 系列(七)—— Hive 常用 DML 操作

    一.加载文件数据到表 1.1 语法 LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE] INTO TABLE tablename [PARTITION (p ...