【发布时间】:2017-12-01 08:47:03
【问题描述】:
我有以下 XML,我需要将“DUE”和“RATE”映射到带有 XmlSerializer 的对象列表。可以有零到多个,并且它们总是以相同的“idx”成对出现。
<INVOICE ID="4">
<STATUS>S</STATUS>
<TOTAL>6230.00</TOTAL>
<DUE idx="1">14.12.17</DUE>
<RATE idx="1">6230.00</RATE>
</INVOICE >
<INVOICE ID="5">
<STATUS>S</STATUS>
<TOTAL>3270.00</TOTAL>
<DUE idx="1">30.11.17</DUE>
<RATE idx="1">1090.00</RATE>
<DUE idx="2">07.12.17</DUE>
<RATE idx="2">1090.00</RATE>
<DUE idx="3">14.12.17</DUE>
<RATE idx="3">1090.00</RATE>
</INVOICE>
我有以下设置,它在没有“Rate”和“Due”列表的情况下工作正常:
[Serializable]
public class UserInvoicesDto
{
[XmlElement("INVOICE")]
public List<UserInvoiceDto> Invoices { get; set; }
}
[Serializable, XmlRoot("INVOICE")]
public class UserInvoiceDto
{
[XmlAttribute("id")]
public int InvoiceId { get; set; }
[XmlElement("TOTAL")]
public string Total { get; set; }
}
然后我有以下课程。
[Serializable]
public class InvoicesDueDates
{
[XmlAttribute("idx")]
public string Id { get; set; }
[XmlElement("DUE")]
public string DueDate { get; set; }
[XmlElement("RATE")]
public string Rate { get; set; }
}
有没有可能?
【问题讨论】:
-
您的问题与serializing a list of KeyValuePair to XML 或Xml Sequence deserialization with RestSharp 的问题非常相似。两者都有答案,显示了使用
XmlSerializer反序列化成对元素序列的两种不同方法。这些答案是否足够,还是您需要更多帮助? -
只需要反序列化,还是同样的格式也要重新序列化?
-
另见Serialize parallel arrays to XML in C# in a specific order,它可以进行序列化和反序列化。
标签: .net xml xmlserializer