如何扫描XElement并将所有元素(带值)放入Dictionary中

本文关键字:带值 元素 放入 Dictionary 何扫描 扫描 XElement | 更新日期: 2023-09-27 18:09:55

我的输入是XElement对象-我需要将这个对象转换为Dictionary

XElement是这样的

 <Root>
    <child1>1</child1>
    <child2>2</child2>
    <child3>3</child3>
    <child4>4</child4>
 </Root>

我实际需要返回的输出是

像这样的字典

[ Child1, 1 ]
[ Child2, 2 ]
[ Child3, 3 ]
[ Child4, 4 ]

我该怎么做呢?

谢谢你的帮助。

如何扫描XElement并将所有元素(带值)放入Dictionary中

您正在寻找ToDictionary()方法:

root.Elements().ToDictionary(x => x.Name.LocalName, x => x.Value)
var doc = XDocument.Parse(xml);
Dictionary<string, int> result = doc.Root.Elements()
    .ToDictionary(k => k.Name.LocalName, v => int.Parse(v.Value));

你们都没抓住重点。

钥匙应该是"ChileX",就像这个国家一样。:)

var xml = XElement.Parse("<Root><child1>1</child1><child2>2</child2><child3>3</child3><child4>4</child4></Root>");
var d = xml.Descendants()
   .ToDictionary(e => "Chile" + e.Value, e => v.Value);

你可以试试

XElement root = XElement.Load("your.xml");
Dictionary<string, string> dict = new Dictionary<string, string>();
foreach (XElement el in root.Elements())
    dict.Add(el.Name.LocalName, el.Value);

对于linq解决方案检查@jon skeet答案:linq到XML -字典转换