gpt4 book ai didi

c# - Xml 序列化获取列表节点上的属性

转载 作者:行者123 更新时间:2023-11-30 23:17:16 25 4
gpt4 key购买 nike

我目前有这样的结构

[XmlRoot("command")]
public class Command
{
[XmlArray("itemlist")]
[XmlArrayItem("item")]
public List<Item> Items { get; set; }
}

[XmlRoot("item")]
public class Item
{
[XmlAttribute("itemid")]
public string ItemID { get; set; }
}

这很适合它的目的,但是给定这个 xml

<command>
<itemlist totalsize="999">
<item itemid="1">
<item itemid="2">
...
</itemlist>
</command>

如何在反序列化时从 itemlist 中获取 totalsize?XML 是我收到的,不是我能控制的。
我不是在寻找 GetAttributeValue 或类似的东西,而是纯粹使用 xmlserializer

最佳答案

您需要将itemlistitem 分成两个类。

[XmlRoot("command")]
public class Command
{
[XmlElement("itemlist")]
public ItemList ItemList { get; set; }
}

public class ItemList
{
[XmlAttribute("totalsize")]
public int TotalSize { get; set; }

[XmlElement("item")]
public List<Item> Items { get; set; }
}

public class Item
{
[XmlAttribute("itemid")]
public string ItemID { get; set; }
}

顺便说一句,请注意 XmlRoot 属性仅与 root 元素相关。在这种情况下,您在 Item 上拥有的那个将被忽略。

关于c# - Xml 序列化获取列表节点上的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41548194/

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