c# - 是否有辅助方法来解析类似 appSettings 的 xml?

标签 c# .net xml app-config

appSettings-like 我的意思是这样,

<appSettings>
    <add key="myKey" value="myValue" />
</appsettings>

结果是一个键值集合,我可以像这样访问它:

string v = config["myKey"];

但它不一定位于 app.config 中,所以我拥有的是一个字符串或一个 XmlNode。

NameValueFileSectionHandler.Create方法显然可以完成这项工作,但输入需要两个对象,Object parent,Object configContext,以及一个 xml 节点,我不知道要传递给它们什么。

最佳答案

像这样把一个字符串解析成一个字典,

var xml = XElement.Parse("<appSettings><add key=\"myKey\" value=\"myValue\" /></appSettings>");
var dic = xml.Descendants("add").ToDictionary(x => x.Attribute("key").Value, x => x.Attribute("value").Value);

你可以这样获取值,

var item = dic["myKey"];

你也可以这样修改字典中的值,

dic["myKey"] = "new val";

并且您可以使用此代码将修改后的字典转换回 XElement,

var newXml = new XElement("appSettings", dic.Select(d => new XElement("add", new XAttribute("key", d.Key), new XAttribute("value", d.Value))));

关于c# - 是否有辅助方法来解析类似 appSettings 的 xml?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6225343/

相关文章:

c# - 在 C# 中是 bool 读/写原子

c# - 如何在自适应对话框 HttpRequest 中从 xml 转换为 json?

xml - 以编程方式生成 XBRL 文档 : Use a template or a library?

c# - 如何处理 XML 属性值中未转义的引号字符?

c# - 用户无法在已绑定(bind)到浮点值的文本框中键入 '.',而 UpdateSourceTrigger 在 WPF 中为 PropertyChanged

c# - 如何按键搜索自定义配置部分

c# - 用于检查字符串是否以某个子字符串开头的正则表达式模式?

C#:以与分配相反的顺序处理资源是否有优势?

c# - 更改 System.Uri 的端口

c# - IEnumerable<T> 赋值