2013-03-06 30 views
2

我有一个XML字符串,像这样:的LINQ到XML - 创建字典从重复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)。

+0

看到这里[http://stackoverflow.com/a/4801620/474535](http://stackoverflow.com/a/4801620/474535) – 2013-03-06 13:12:11

回答

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元素。

+0

工程就像一个魅力,谢谢! – roi972 2013-03-06 13:30:13

0

您可以使用ToDictionary()

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