使用 C# 反序列化 XML
本文关键字:XML 反序列化 使用 | 更新日期: 2023-09-27 18:34:55
我有这个XML片段,我正在尝试反序列化它。我已经尝试了以下类来反序列化,但我没有得到地址行,我只得到了城市州和邮政编码。有人可以指出我的错误吗?我看不出我做错了什么。 XML 和类就在下面。
.XML:
<RemitTo>
<Address>
<AddressLine lineNumber="1">Blah blah</AddressLine>
<AddressLine lineNumber="2">bah bah bah</AddressLine>
<AddressLine lineNumber="3">bah3</AddressLine>
<City>Minneapolis</City>
<State>MN</State>
<PostalCode>55413</PostalCode>
<Country isoCountryCode="US">United States</Country>
</Address>
</RemitTo>
.CLASS:
[XmlRoot("RemitTo")]
public partial class RemitTo
{
[XmlElementAttribute("Address")]
public List<Address> RemitToAddress { get; set; }
}
public partial class Address
{
[XmlArray("Address")]
[XmlArrayItem("AddressLine")]
public List<string> AddressLine { get; set; }
public string City { get; set; }
public string State { get; set; }
public string PostalCode { get; set; }
public string Country { get; set; }
}
在代码中我这样做。
RemitTo i;
XmlSerializer serializer = new XmlSerializer(typeof(RemitTo));
i = (RemitTo)serializer.Deserialize(addressReader);
应该这么简单
[XmlElement("AddressLine")]
public List<string> AddressLine { get; set; }
XmlArray
不适用,因为我们已经在 Address
类中,并且子项周围没有进一步的包装元素。
参考