从C#中的XML文件获取密钥的值

cyc*_*ero 3 c# xml

我有一个XML文件,具有以下结构:

<Definitions>
  <Definition Execution="Firstkey" Name="Somevalue"></Definition>
  <Definition Execution="Secondkey" Name="Someothervalue"></Definition>
</Definitions>
Run Code Online (Sandbox Code Playgroud)

如何在我的.NET应用程序中使用C#获取密钥的值(Firstkey,Secondkey)并将其写下来?

谢谢.

Bro*_*ass 5

使用Linq to XML这很简单.

要获得钥匙:

var keys = doc.Descendants("Definition")
              .Select(x => x.Attribute("Execution").Value);
foreach (string key in keys)
{
    Console.WriteLine("Key = {0}", key);
}
Run Code Online (Sandbox Code Playgroud)

获取所有值:

XDocument doc = XDocument.Load("test.xml");
var definitions = doc.Descendants("Definition")
                     .Select(x => new { Execution = x.Attribute("Execution").Value,
                                        Name = x.Attribute("Name").Value });
foreach (var def in definitions)
{
    Console.WriteLine("Execution = {0}, Value = {1}", def.Execution, def.Name);
}
Run Code Online (Sandbox Code Playgroud)

编辑以回应评论:

认为你真正想要的是一个字典,它从一个键("执行")映射到一个值("名称"):

XDocument doc = XDocument.Load("test.xml");
Dictionary<string, string> dict = doc.Descendants("Definition")
                                     .ToDictionary(x => x.Attribute("Execution").Value, 
                                                   x => x.Attribute("Name").Value);
string firstKeyValue = dict["Firstkey"]; //Somevalue
Run Code Online (Sandbox Code Playgroud)