gpt4 book ai didi

c# - 将 XDocument 解析为 Dictionary

转载 作者:太空宇宙 更新时间:2023-11-03 21:52:06 24 4
gpt4 key购买 nike

关于如何将整个 XML 文档解析为字典,我需要朝着正确的方向插入一点。我的计划是让键成为路径,每个嵌套类型由“->”分隔。例如:

<Foo>
<Bar>3</Bar>
<Foo>
<Bar>10</Bar>
</Foo>
</Foo>

如果我想获得一个值,我只需使用以下方法从字典中获取它:

string value = Elements["Foo->Bar"];

虽然我不太确定如何递归地遍历每个元素。任何帮助表示赞赏。

最佳答案

直接的解决方案:

    private static string GetElementPath(XElement element)
{
var parent = element.Parent;
if(parent == null)
{
return element.Name.LocalName;
}
else
{
return GetElementPath(parent) + "->" + element.Name.LocalName;
}
}

static void Main(string[] args)
{
var xml = @"
<Foo>
<Bar>3</Bar>
<Foo>
<Bar>10</Bar>
</Foo>
</Foo>";
var xdoc = XDocument.Parse(xml);
var dictionary = new Dictionary<string, string>();
foreach(var element in xdoc.Descendants())
{
if(!element.HasElements)
{
var key = GetElementPath(element);
dictionary[key] = (string)element;
}
}
Console.WriteLine(dictionary["Foo->Bar"]);
}

关于c# - 将 XDocument 解析为 Dictionary<string, string>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14006654/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com