场景

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

这里以对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. Linux--shell重定向与文件处理命令--02

    一.IO重定向 1.数据输入:键盘---标准输入,但并不是唯一输入方式 ” | passwd –stdin username #同时添加用户和密码 while line;do 循环体...$line ...

  2. pickle 基础用法

    def save_obj_to_file(path, target_obj): file = open(path,'wb') pickle.dump(target_obj) file.close() ...

  3. [Spring cloud 一步步实现广告系统] 21. 系统错误汇总

    广告系统学习过程中问题答疑 博客园 Eureka集群启动报错 Answer 因为Eureka在集群启动过程中,会连接集群中其他的机器进行数据同步,在这个过程中,如果别的服务还没有启动完成,就会出现Co ...

  4. RuntimeError: one of the variables needed for gradient computation has been modified by an inplace

    vgg里面的 ReLU默认的参数inplace=True 当我们调用vgg结构的时候注意 要将inplace改成 False 不然会报错 RuntimeError: one of the variab ...

  5. Discuz! ML远程代码执行(CVE-2019-13956)

    Discuz! ML远程代码执行(CVE-2019-13956) 一.漏洞描述 该漏洞存在discuz ml(多国语言版)中,cookie中的language可控并且没有严格过滤,导致可以远程代码执行 ...

  6. Nginx + fastcgi + php 的原理与关系

    CGI:Common Gateway Interface 公共网关接口,web服务器和脚本语言通信的一个标准.接口.协议[协议] FastCGI:CGI协议的升级版[协议] PHP-CGI: 实现了C ...

  7. 《Java 8 in Action》Chapter 8:重构、测试和调试

    我们会介绍几种方法,帮助你重构代码,以适配使用Lambda表达式,让你的代码具备更好的可读性和灵活性.除此之外,我们还会讨论目前比较流行的几种面向对象的设计模式, 包括策略模式.模板方法模式.观察者模 ...

  8. Docker学习总结(三)--常用命令

    镜像相关命令 查看镜像 docker images 返回列表字段含义如下: 字段名称 字段含义 REPOSITORY 镜像名称 TAG 镜像标签 IMAGE ID 镜像 ID CREATED 镜像创建 ...

  9. .NET CORE 怎么样从控制台中读取输入流

    .NET CORE 怎么样从控制台中读取输入流 从Console.ReadList/Read 的源码中,可学习到.NET CORE 是怎么样来读取输入流. 也可以学习到是如何使用P/Invoke来调用 ...

  10. Java多线程之线程协作

    Java多线程之线程协作 一.前言 上一节提到,如果有一个线程正在运行synchronized 方法,那么其他线程就无法再运行这个方法了.这就是简单的互斥处理. 假如我们现在想执行更加精确的控制,而不 ...