将XmlDocument转换为Dictionary <string,string>

Col*_*e W 0 c# xml linq

我正在寻找一种转换XmlDocumentDictionary<string, string>使用Linq 的好方法.

我的xml格式如下:

<config>
    <field>value</field>
    <field2>value2</field2>
</config>
Run Code Online (Sandbox Code Playgroud)

我想把它放到一个字典中,键值对看起来像这样:

字段,值字段2,值
2

我想我应该使用Linq这样做,但我不确定语法.

Ahm*_*eed 5

使用的XmlDocument,根据您的问题,您可以使用此方法获得Dictionary<string, string>.

string input = @"<config>
    <field>value</field>
    <field2>value2</field2>
</config>";

var xml = new XmlDocument();
xml.LoadXml(input);

var dict = xml.SelectNodes("/config/*")
              .Cast<XmlNode>()
              .ToDictionary(n => n.Name, n => n.InnerText);
Run Code Online (Sandbox Code Playgroud)

如果可以使用XElement,则可以使用Parse方法从字符串加载XML,或使用该Load方法从文件加载XML .那么这种方法应该足够了:

var xml = XElement.Parse(input);
var dict = xml.Elements()
              .ToDictionary(n => n.Name.LocalName, n => n.Value);
Run Code Online (Sandbox Code Playgroud)