【发布时间】:2015-01-21 13:48:26
【问题描述】:
这是我的示例 XML:
<outbound>
<leg0 Code="aaa" RetCode="ccc"/>
<leg1 Code="bbb" RetCode="ddd"/>
</outbound>
是否可以以某种方式使用 XmlElement(我正在使用 XmlSerializer)将 leg0 和 leg1 反序列化为一种对象类型?
我的对象是这样的:
public class FlightInfo
{
[XmlElement(ElementName = "outbound")]
public Outbound Outbound { get; set; }
}
public class Outbound
{
[XmlElement(ElementName = "leg")]
public List<Leg> Leg { get; set; }
}
public class Leg
{
[XmlAttribute(AttributeName = "Code")]
public string Code{ get; set; }
[XmlAttribute(AttributeName = "RetCode")]
public string ReturnCode{ get; set; }
}
我的问题是将元素 leg0 和 leg1 反序列化为 Leg 对象。谁能给我一个提示?
【问题讨论】:
-
您始终可以手动反序列化。读取 XML,并为每个 leg[x] 元素创建一个 Leg。
-
我知道我可以手动反序列化,但问题是关于XmlSerializer。提供的示例只是所有 XML 的一小部分。
-
有人问了差不多同样的问题,也没有很好的答案。也许您可以实现一个自定义 XmlAttribute,它在 ElementName 上使用正则表达式而不是常量表达式。 stackoverflow.com/questions/2874680/…
标签: c# xml xml-serialization xmlserializer xml-attribute