解析 XML 文件节点并将其存储到字典中

苏米亚吉特·罗伊
<?xml version="1.0" encoding="utf-8" ?>
<LanguagePacks>
  <Language name = "EN">
    <item key="play" value="play"/>
    <item key="pause" value="pause"/>
    <item key="resume" value="resume"/>
    <item key="all" value="all"/>
    <item key="songs" value="songs"/>
    <item key="song" value="song"/>
    <item key="skip" value="skip"/>
    <item key="next" value="next"/>
    <item key="previous" value="previous"/>
    <item key="number" value="number"/>
    <item key="album" value="album"/>
  </Language>
  <Language name = "DE">
    <item key="play" value="spiel"/>
    <item key="pause" value="pause"/>
    <item key="resume" value="resume"/>
    <item key="all" value="alle"/>
    <item key="songs" value="lieder"/>
    <item key="song" value="lied"/>
    <item key="skip" value="skipp"/>
    <item key="next" value="nachste"/>
    <item key="previous" value="vorheriger"/>
    <item key="number" value="nummer"/>
    <item key="album" value="alben"/>
  </Language>
</LanguagePacks>

我想解析上面的 xml 文件的 Language name == "EN" 并将键值对存储在字典中。我在下面尝试的代码..但错误显示已添加具有相同键的项目。请帮忙。

 XDocument doc = XDocument.Load($"{path}");
    var output = doc.Element("LanguagePacks")
        .Descendants().Where(r=>(string)r.Attribute("name").Value == "EN")
        .Descendants()
        .ToDictionary(k => k.Name, v => v.Value);
安东尼五世
.ToDictionary(k => k.Name, v => v.Value);

k 是一个item,如果你想要你Dictionary喜欢的

[0] = {[play, play]}
[1] = {[pause, pause]}

我认为对于每个item,您可以访问属性以获取价值

var output = doc.Element("LanguagePacks")
        .Descendants().Where(r=>(string)r.Attribute("name").Value == "EN")
        .Descendants() // list of item
        .ToDictionary(k => k.Attribute("key").Value, v => k.Attribute("value").Value);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章