gpt4 book ai didi

c# - 从 xdocument c# 获取字典

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

我有一个如下所示的 xml:

<NewDataSet>
<Person>
<FirstName>abc</FirstName>
<LastName>xyz</LastName>
<Address>12345abc</Address>
</Person>
<Person>
<FirstName>abcd</FirstName>
<LastName>pqr_xyz</LastName>
<Address>1111abc</Address>
</Person>
<Person>
<FirstName>abcde</FirstName>
<LastName>ghy_xyz</LastName>
<Address>98765abc</Address>
</Person>
</NewDataSet>

现在我想将这个 xml 放入字典中。以下是我正在使用的代码。

 string data =
@"<NewDataSet><Person>...";
XDocument doc = XDocument.Parse(data);
Dictionary<string, string> dataDictionary = new Dictionary<string, string>();
foreach (XElement elem in doc.Descendants("Person"))
{
var row = elem.Descendants();
string str = elem.ToString();
foreach (XElement element in row)
{
string keyName = element.Name.LocalName;
dataDictionary.Add(keyName, element.Value);
}
yield return dataDictionary;
}

现在这段代码不起作用。我知道某处有一个愚蠢的错误,任何人都可以帮助我吗?这是一个有点类似要求的示例 convert xdocument to IEnumerable<Dictionary<string, object>> ,但我也无法让它工作。

谢谢,

最佳答案

您试图使用抛出参数异常的 dataDictionary 对象的同一个实例。已添加具有相同键的项目。要更正此问题,您需要在每个循环的第一个中初始化 dataDictionary。

        Dictionary<string, string> dataDictionary = null;

foreach (XElement elem in doc.Descendants("Person"))
{
var row = elem.Descendants();
string str = elem.ToString();

dataDictionary = new Dictionary<string, string>();

foreach (XElement element in row)
{
string keyName = element.Name.LocalName;
dataDictionary.Add(keyName, element.Value);
}

yield return dataDictionary;
}

关于c# - 从 xdocument c# 获取字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10698800/

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