将 XML 转换为 Dictionary<String,String>
Posted
技术标签:
【中文标题】将 XML 转换为 Dictionary<String,String>【英文标题】:Convert XML to Dictionary<String,String> 【发布时间】:2021-05-19 04:37:00 【问题描述】:我一直在尝试将此 XML 转换为字典,但出现了各种错误。这是我的 XML
<product>
<name>AH</name>
<prod>AH</prod>
<time>Noon</time>
<txt>00A</txt>
</product>
我正在尝试获取一个字典,其键等于 txt,值等于 prod。 我一直在尝试这个,但无法成功:
Dictionary<string, string> result =
(from e in productsNames.Descendants() select new KeyValuePair<string, string>
(e.Element("txt").Value, e.Element("prod").Value)).ToDictionary(x => x.Key, x =>x.Value);
你能帮帮我吗?提前致谢!
【问题讨论】:
image
, facade
?您是否发布了正确的 xml?
哎呀抱歉刚刚编辑了代码!
这是怎么失败的?例外?编译器错误?出乎意料的结果?
得到这个:NullReferenceException:对象引用未设置为对象的实例
这能回答你的问题吗? What is a NullReferenceException, and how do I fix it?
【参考方案1】:
简单:
string xml = @"<product>
<name>AH</name>
<prod>AH</prod>
<time>Noon</time>
<txt>00A</txt>
</product>";
XDocument doc = XDocument.Parse(xml);
Dictionary<string, string> dict = doc.Descendants("product")
.GroupBy(x => (string)x.Element("name"), y => (string)y.Element("prod"))
.ToDictionary(x => x.Key, y => y.FirstOrDefault());
【讨论】:
以上是关于将 XML 转换为 Dictionary<String,String>的主要内容,如果未能解决你的问题,请参考以下文章
如何将 Dictionary<XElement,XElement> 转换为 xml 文件?
无法将类型为“Newtonsoft.Json.Linq.JObject”的对象转换为类型“System.Collections.Generic.Dictionary`2[System.String,S
将 [Dictionary<String,Any?>] 转换为 [Dictionary<String,Any!>] ?迅速 3