gpt4 book ai didi

c# - 将 XML 文档转换为字典

转载 作者:可可西里 更新时间:2023-11-01 08:56:09 24 4
gpt4 key购买 nike

我不需要编辑任何 XML 文件或任何东西,这只是为了阅读和解析。

我希望能够将 XML 文档作为字典来处理,例如:username = doc["username"];,但我找不到如何“转换”文档。我也遇到过重复键名的问题,但是可以通过在每个值上附加 1、2 等来轻松避免这种情况;也可以轻松进行 for 循环。

这可能吗?将(已解析的)XML 文档视为字典?


对梅赫达德的回答:它会不时变化,这取决于用户的请求。如果用户请求 x,那么它将是:

<xml>
<test>foo</test>
<bar>123</bar>
<username>foobar</username>
</xml>

但是如果他请求y,就会像

<xml>
<ammount>1000</ammount>
<mail>...@...</mail>
<username>foobar</username>
</xml>

最好的情况是:

<xml>
<mengde>100</mengde>
<type>3</type>
<mail>foo</mail>
<crypt>bar</crypt>
<username>bar</username>
</xml>"

可以被解析然后作为doc["mengde"]等访问

最佳答案

你可以使用 linq to xml 来做你想做的事(如果我明白你想要什么的话)

string data = "<data><test>foo</test><test>foobbbbb</test><bar>123</bar><username>foobar</username></data>";

XDocument doc = XDocument.Parse(data);
Dictionary<string, string> dataDictionary = new Dictionary<string, string>();

foreach (XElement element in doc.Descendants().Where(p => p.HasElements == false)) {
int keyInt = 0;
string keyName = element.Name.LocalName;

while (dataDictionary.ContainsKey(keyName)) {
keyName = element.Name.LocalName + "_" + keyInt++;
}

dataDictionary.Add(keyName, element.Value);
}

关于c# - 将 XML 文档转换为字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1710193/

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