微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用c#反序列化xml中的重复元素

如何解决使用c#反序列化xml中的重复元素

我收到了包含以下内容回复

<carList>
<numberOfRecords>237</numberOfRecords>
<year>1982</year>
<year>1983</year>
<year>1978</year>
<year>1955</year>
<year>1998</year>
</carList>

这是更大的 xml 文档的一部分,我可以对其余部分进行消毒,但这部分我不能。我其余的消毒物品没问题。 这是我的模型:

public class Response 
{
   [XmlArray( "carList")]
   [XmlArrayItem("year")]
   //[XmlElement("carList")]
   public CarList? CarList { get; set; }
}
    public class CarList
    {
        [XmlElement("numberOfRecords")]
        public int? NumberOfRecords { get; set; }

        [XmlElement("year")]
        public List<string>? Year { get; set; }
    }

我的解串器:

XmlDeserializer xmldes = new XmlDeserializer();

var deserializedResponse = xmldes.Deserialize<Response>(response);

解决方法

您只有一个 carList,所以应该是:

[XmlElement("carList")]
public CarList? CarList { get; set; }

假设这是一个子节点,而不是根元素(在这种情况下:[XmlRoot("carList")]CarList 本身上,并且完全丢失 Response

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。