如何将XML转换为Dictionary

Ram*_*feh 18 c# xml linq linq-to-xml

我的xml如下:

<?xml version="1.0" encoding="UTF-8"?>
<root>
  <data name="LogIn">Log In</data>
  <data name="Password">Password</data>
</root>
Run Code Online (Sandbox Code Playgroud)

我没有Linq成功做到这一点,任何人都可以帮我将以下代码转换为Linq:

using (XmlReader reader = XmlReader.Create(_xml))
{
    while (reader.Read())
    {
       if (reader.NodeType == XmlNodeType.Element && reader.LocalName == "data")
       {
          reader.MoveToAttribute("name");
          string key = reader.Value;
          reader.MoveToContent();
          string value = reader.ReadElementContentAsString();
          _dictionary.Add(key, value);
       }
    }
    reader.Close();
}
Run Code Online (Sandbox Code Playgroud)

Ser*_*kiy 21

var xdoc = XDocument.Load(path_to_xml);
_dictionary = xdoc.Descendants("data")
                  .ToDictionary(d => (string)d.Attribute("name"),
                                d => (string)d);
Run Code Online (Sandbox Code Playgroud)

  • @RamzyAbourafeh添加`using System.Linq;`这样你就可以使用LINQ扩展方法了. (6认同)