如何在.net中反序列化XML集合到字典
本文关键字:XML 集合 字典 反序列化 net | 更新日期: 2023-09-27 18:09:07
假设我有以下XML:<appSettings>
<add key="key1" value="value1" />
<add key="key2" value="value2" />
<add key="key3" value="value3" />
<add key="key4" value="value4" />
</appSettings>
,我想把它转换成一个对象:
AppSettings["key1"] = "value1";
AppSettings["key2"] = "value2";
AppSettings["key3"] = "value3";
等等…
我在网上查过了,还没有找到有用的东西。有人能帮我一下吗?
轻松。
var xd = XDocument.Parse(xml);
var AppSettings = xd.Root.Elements("add")
.ToDictionary(
xe => xe.Attribute("key").Value,
xe => xe.Attribute("value").Value);
使用LINQ很容易做到这一点:
XElement appSettings = (...); // Parse your XML and get the root Element.
var dict = appSettings.Elements().ToDictionary(el => el.Attribute("key"), el => el.Attribute("value"));
var xml = XDocument.Parse("<appSettings><add key='"key1'" value='"value1'" /> <add key='"key2'" value='"value2'" /> <add key='"key3'" value='"value3'" /> <add key='"key4'" value='"value4'" /> </appSettings>");
xml.Elements().First().Elements()
.Select (x => new { key = x.Attribute("key").Value, value = x.Attribute("value").Value })
.ToDictionary(e => e.key, e => e.value).Dump();