首页 > 其他分享 >XML操作

XML操作

时间:2023-12-21 10:45:51浏览次数:29  
标签:XML node appSettingsNode value key doc 操作 appSettings

XML操作

因XML的易于读取和修改,因此可以存放程序的可配置项

C#中的XML操作

通过ConfigurationManager类读取

通过该方法只能实现Get操作。并且在Winform框架下,无法实现配置文件的热加载

private static string apiUrl =  ConfigurationManager.AppSettings["Url"];

通过XmlDocument类操作

通过XmlDocument可以实现对XML的增删改查操作

public static void UpdateOrInsertAppSetting(string key, string value)
{
    // Load the app.config file as an XmlDocument
    XmlDocument doc = new XmlDocument();
    //配置文件的路径,这样用默认路径
    doc.Load(AppDomain.CurrentDomain.SetupInformation.ConfigurationFile);
    // Modify the XML structure or content
    // For instance, let's add or update an element in the appSettings section
    XmlNode appSettingsNode = doc.SelectSingleNode("//appSettings");
    // Check if the appSettings node exists
    if (appSettingsNode == null)
    {
        // If it doesn't exist, create a new appSettings node
        XmlElement root = doc.DocumentElement;
        appSettingsNode = doc.CreateElement("appSettings");
        root.AppendChild(appSettingsNode);
    }
    // Check if the key exists, update if it does, else add a new key-value pair
    XmlNode node = appSettingsNode.SelectSingleNode($"//add[@key='{key}']");
    if (node != null)
    {
        node.Attributes["value"].Value = value;
    }
    else
    {
        XmlElement newElement = doc.CreateElement("add");
        newElement.SetAttribute("key", key);
        newElement.SetAttribute("value", value);
        appSettingsNode.AppendChild(newElement);
    }
    // Save the changes back to the app.config file
    doc.Save(AppDomain.CurrentDomain.SetupInformation.ConfigurationFile);
}
public static string ReadXML(string key)
{
    XmlDocument doc = new XmlDocument();
    doc.Load(AppDomain.CurrentDomain.SetupInformation.ConfigurationFile);
    XmlNode appSettingsNode = doc.SelectSingleNode("//appSettings");
    // Check if the appSettings node exists
    if (appSettingsNode == null)
    {
        // If it doesn't exist, create a new appSettings node
        XmlElement root = doc.DocumentElement;
        appSettingsNode = doc.CreateElement("appSettings");
        root.AppendChild(appSettingsNode);
    }
    // Check if the key exists, update if it does, else add a new key-value pair
    XmlNode node = appSettingsNode.SelectSingleNode($"//add[@key='{key}']");
    if (node != null)
    {
       return  node.Attributes["value"].Value;
    }
    else
    {
        return null;
    }
}

标签:XML,node,appSettingsNode,value,key,doc,操作,appSettings
From: https://www.cnblogs.com/f-t-q/p/17918449.html

相关文章

  • 人们一般提到的安全性只涉及内存安全——但这还远远不够……而且与其他语言(包括 C++
    C++之父BjarneStroustrup:我会为全球数十亿行C++代码带来一个崭新的解决方案https://mp.weixin.qq.com/s/L8xYyR88KdHsHqyz_sQ5Sg作者|DavidCassel译者|王强策划|Tina在CppConC++会议上,这位C++的创建人明确了该编程语言中迫切需要的安全措施具体都有哪些。  ......
  • mybatis获取insert操作自增主键值原理
    大家好,我是joker,希望你快乐。上一篇mybatisinsert操作获取自增主键中介绍了如何获取主键值,接下来这篇我们将通过跟踪源码的方式进一步探究mybatis是如何获取到主键的。其实上一篇中,通过官方文档我们可以看出mybatis还是通过 JDBC的getGeneratedKeys方法获取由数据库内部生......
  • 【SpringBootWeb入门-16】Mybatis-基础操作-多条件查询操作&XML文件配置SQL
    1、章节回顾上一篇文章我们讲解了Mybatis的增改查操作,本篇继续学习Mybatis的复杂查询操作(多条件查询)。2、增删改查操作-多条件查询操作根据条件姓名、性别、入职时间来查询员工表emp数据,其中员工姓名支持模糊匹配,性别进行精确匹配,入职时间进行范围查询,查询结果按照最后修改时间......
  • Apache Kyuubi 讲解与实战操作
    目录一、概述二、SparkKyuubi架构三、Hadoop基础环境安装1)hadoop下载部署包2)创建网络3)部署MySQL4)部署HadoopHive四、SparkKyuubi安装1)下载Kyuubi2)下载Spark32)配置Kyuubi(Spark3)3)启动Kyuubi4)测试使用五、ApacheKyuubiHA部署1)部署Zookeeper3)KyuubiHA配置4)启动服务......
  • 位运算之异或的骚操作
    不用比较和判断得到两个数中的最大值#define_CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>#include<string.h>#include<math.h>#include<time.h>#include<stdbool.h>#defineuunsigned#definelllonglong#definescs......
  • EasyCVR平台如何通过api接口设置实时流的sei数据实现画框等操作?
    为了便于用户自由调用、集成与二次开发,EasyCVR平台也提供了丰富的API接口供大家使用。今天我们来分享一下如何通过API接口设置实时流的SEI数据,实现在视频播放器中展示文本内容、画框等操作?1)后端接口调用如下:接口URL:POSThttp://127.0.0.1:18000/api/v1/sei/set2)接口参数如下:3)调用成......
  • debezium同步Oracle数据时,更新操作只有被变更字段,其余字段值为null,主键ID值为0
    1.情景展示使用debezium的Oracle插件(io.debezium.connector.oracle.OracleConnector)自动读取Oracle的归档日志。当我对Oracle数据库受监控的表(待同步表),进行更新操作后,debezium会自动将变更记录推送到kafka当中。新增和删除操作,数据都能同步到另一个数据库。但是,更新操作,数据......
  • 安防监控EasyCVR平台如何通过api接口设置实时流的sei数据实现画框等操作?
    国标GB28181视频监控系统EasyCVR平台采用了开放式的网络结构,支持高清视频的接入和传输、分发,能提供实时远程视频监控、视频录像、录像回放与存储、告警、语音对讲、云台控制、平台级联、磁盘阵列存储、视频集中存储、云存储等丰富的视频能力,此外,高清可视化视频监控平台EasyCVR还具......
  • ● Zabbix——操作系统加入
    zabbix-get用户测试server端是否可以连通agent的key,并取回值。安装:yuminstallzabbix-get如果不知道路径,可以通过下方命令查找。find/-namezabbix_get安装完成后,可以下面命令来测试是否可以连通agent-s--host:指定客户端主机名或者IP-p--port:客户端端口,默认10050-I......
  • Java学习之apache poi操作Excel文件
    创建Java项目,然后加入Maven依赖如下:读取指定的Excel文件写入既存的Excel文件 创建新的Excel,添加文件内容......