将 XML 转换为 C# 字典
我有一个 XML 响应,如下所示:
<?xml version="1.0" encoding="utf-8"?>
<response>
<scheme>
<name>name_1</name>
<items>
<item>
<itemid>testid_1</itemid>
<new></new>
<used></used>
</item>
<item>
<itemid>testid_2</itemid>
<new></new>
<used></used>
</item>
</items>
</scheme>
<scheme>
<name>name_2</name>
<items>
<item>
<itemid>testid_3</itemid>
<new></new>
<used></used>
</item>
</items>
</scheme>
</response>
我必须将此 XML 响应转换为 Dictionary
。字典中的每个条目都是一个
元素,其中字典的键是
节点,字典的值是 List
,其中 Item
对象由 itemid
、new
和 used
组成。
到目前为止,我的代码如下所示:
var items =
from item in itemsXml.Descendants("scheme")
select new Item
{
ItemId = item.Element("itemid").Value,
New = item.Element("new").Value,
Used = item.Element("used").Value,
};
因此,上面的代码将为我创建一个 Item 列表,但是如何访问每个
节点code>
是键,每个方案下的 List
是我的 Dictionary 的值。
有什么不同的建议吗?我绝对没有这样做对..
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
尝试这个方法:
Try this approach:
它必须是一本字典吗?
我问的原因是,您可以创建一个具有项目属性的项目类。
然后创建一个方案类,该类具有名为“Name”的属性以及 List 属性。
然后,您可以使用 .NET 反序列化来创建方案列表,每个方案都有一个项目列表。
类似于:
然后按照如下教程进行操作: http://sharpertutorials.com/serialization/
让 .Net 为您进行反序列化。
当然,如果你必须查字典的话,这是行不通的。
Does it HAVE to be a dictionary?
The reason I'm asking is, you could create an item class that has your item properties.
Then create a scheme class that has a property called "Name" as well as a List property.
You could then use .NET deserialization to create a list of schemes, each scheme having a list of items.
Something like:
Then follow a tutorial like this one: http://sharpertutorials.com/serialization/
And let .Net do the deserialization for you.
Granted, this won't work if you have to do a dictionary.