【问题标题】:Linq To Xml - Create Dictionary From Repetitive XMLLinq To Xml - 从重复的 XML 创建字典
【发布时间】:2013-03-06 13:03:40
【问题描述】:

我有一个这样的 XML 字符串:

<root>
  <name>Key</name>
  <value>Value</value>
  <name>Key</name>
  <value>Value</value>
  <name>Key</name>
  <value>Value</value>
</root>

如何生成与此相对应的 C# 字典 - 即为每对名称和值创建一个字典项。 (使用 Linq To XML)。

【问题讨论】:

标签: c# xml dictionary linq-to-xml


【解决方案1】:

我会尝试这样的事情......

XDocument doc = XDocument.parse(... parse you XML here ...);
var nameElements = doc.Descendants("name");
var dictionary = nameElements.ToDictionary(el => el.Value,
                                           el => el.ElementsAfterSelf().First().Value);

这首先找到所有name 元素,然后将此数组投影到字典中。键选择器使用el.Value,这是name 元素的值。值选择器采用元素的下一个兄弟元素,即您的 value 元素。

【讨论】:

    【解决方案2】:

    你可以使用ToDictionary():

    var dict = XElement.Parse(yourMarkup).Elements("name").ToDictionary(
        name => name.Value,
        name => name.ElementsAfterSelf("value").First().Value);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-09
      • 1970-01-01
      • 1970-01-01
      • 2010-11-18
      相关资源
      最近更新 更多