将xml转换为字典错误

本文关键字:字典 错误 转换 xml | 更新日期: 2023-09-27 17:53:55

以前也有人问过类似的问题,但我找不到问题的答案。

我想使用linq xml函数将我的config.xml设置转换为字典,但总是得到Possible System.NullReferenceException。因此,我需要检查属性及其值是否存在。

用什么语法?

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <Services>
    <add key ="key1"   value ="value1"></add>
    <add key ="key2"   value ="value2"></add>
    <add key ="key3"   value ="value3"></add>
 </Services>
</configuration>

my lambda code:

XDocument doc = XDocument.Load(configFilePath);
var d = (from name in doc.Descendants("Services") select name)
         .ToDictionary(n =>  n.Attribute("key")
         .Value, n.Attribute("value")
         .Value);

将xml转换为字典错误

Descendants("add")代替Descendants("Services")

var dict = XDocument.Load(configFilePath)
        .Descendants("add")
        .ToDictionary(n => n.Attribute("key").Value, n=> n.Attribute("value").Value);

var dict = XDocument.Load(configFilePath)
       .Descendants("Services").First()
       .Descendants("add")
       .ToDictionary(n => n.Attribute("key").Value, n=> n.Attribute("value").Value);