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

deserialize repeated element in xml using c#

我收到包含以下内容的回复:

<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