【发布时间】:2012-09-26 23:09:48
【问题描述】:
我有一个带有重复节点的以下 xml(“地址”),我需要将这些“地址”节点反序列化为一个对象:
<dealer id="8569" ed="0">
<name hide="0">some name</name>
<url>http://www.some.com</url>
<address hide="0" />
<address>
<line1>text1</line1>
<line2>text2</line2>
<line3>text3</line3>
<town>Town</town>
<postcode>Postcode</postcode>
</address>
</dealer>
我需要将其反序列化为以下类:
public class Dealer
{
public Dealer()
{
_address = new Address();
}
[XmlAttribute("id")]
public long Id { get; set; }
[XmlElement("name")]
public string Name{ get; set; }
[XmlElement("url")]
public string Url{ get; set; }
[XmlElement("address")]
public Address Address{ get; set; }
}
public class Address
{
[XmlElement("line1")]
public string Line1{ get; set; }
[XmlElement("line2")]
public string Line2 { get; set; }
[XmlElement("line3")]
public string Line3 { get; set; }
[XmlElement("county")]
public string County{ get; set; }
[XmlElement("town")]
public string Town{ get; set; }
[XmlElement("postcode")]
public string Postcode{ get; set; }
}
当这个 xml 被反序列化到上面的类时,它总是得到第一个“地址”节点,但是,我需要第二个节点被拾取。我该怎么做?
【问题讨论】:
-
第二次读取时,您是否需要合并地址数据?即 Line1, Line2, Line3, County, Town, Postcode AND "hide=0" 值?或者你可以完全忽略第一个地址元素节点?
-
为什么不使用地址列表,只是好奇?
-
@ChrisSinclair 是的,我想合并地址数据?
-
你只需要一个地址做什么?在 UI 上显示?
-
@Miro,那么您打算在
Address上添加一个Hide属性并在您的程序中使用它?