gpt4 book ai didi

C# XML 数据到字典

转载 作者:行者123 更新时间:2023-11-30 22:26:13 25 4
gpt4 key购买 nike

美好的一天,

我一直在玩 ToDicationary() 扩展方法

var document = XDocument.Load(@"..\..\Info.xml");
XNamespace ns = "http://www.someurl.org/schemas";

var myData = document.Descendants(ns + "AlbumDetails").ToDictionary
(
e => e.Name.LocalName.ToString(),
e => e.Value
);

Console.WriteLine("Writing music...");
foreach (KeyValuePair<string, string> kvp in myData)
{
Console.WriteLine("{0} = {1}", kvp.Key, kvp.Value);
}

使用以下 XML 数据:

<?xml version="1.0" encoding="UTF-8"?>
<Database xmlns="http://www.someurl.org/schemas">
<Info>
<AlbumDetails>
<Artist>Ottmar Liebert</Artist>
<Song>Barcelona Nights</Song>
<Origin>Spain</Origin>
</AlbumDetails>
</Info>
</Database>

而且我没有得到我想要的输出。相反,我得到这个:

Writing music...
AlbumDetails = Ottmar LiebertBarcelona NightsSpain

相反,我想要 myData("Artist") = "Ottmar Liebert",等等...

是否可以处理后代?

TIA,

科森

最佳答案

以下将简单地获取AlbumDetails节点:

document.Descendants(ns + "AlbumDetails")

您需要它的直接后代(子节点)——因为这些也是元素:

document.Descendants(ns + "AlbumDetails").Elements()

整行是:

var myData = document.Descendants(ns + "AlbumDetails")
.Elements().ToDictionary(
e => e.Name.LocalName.ToString(),
e => e.Value
);

关于C# XML 数据到字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11994369/

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