【发布时间】:2021-12-13 07:20:49
【问题描述】:
这是我第一次在 StackOverflow 上发帖,如有错误请见谅。鉴于此 xml:
<document name="doc1.pdf">
<propertyValues>
<propertyValue><name>InvoiceID</name><value>123</value></propertyValue>
<propertyValue><name>CompanyName</name><value>Company1</value></propertyValue>
<propertyValue><name>VendorName</name><value>Vendor1</value></propertyValue>
<propertyValue><name>GrossAmt</name><value>176.33</value></propertyValue>
<propertyValue><name>InvoiceDate</name><value>26-03-2019</value></propertyValue>
</propertyValues>
</document>
<document name="doc2.pdf">
<propertyValues>
<propertyValue><name>InvoiceID</name><value>223</value></propertyValue>
<propertyValue><name>CompanyName</name><value>Company2</value></propertyValue>
<propertyValue><name>VendorName</name><value>Vendor2</value></propertyValue>
<propertyValue><name>GrossAmt</name><value>5300.88</value></propertyValue>
<propertyValue><name>InvoiceDate</name><value>31-03-2019</value></propertyValue>
</propertyValues>
</document>
是否有更简单的方法将其反序列化为 C# 类,例如。
public class Invoice
{
public string InvoiceId { get; set; }
public string CompanyName { get; set; }
public string VendorName { get; set; }
public decimal GrossAmt { get; set; }
public DateTime InvoiceDate { get; set; }
}
当 xml 元素名称映射到属性名称时,反序列化很简单,但在这种情况下它是一个值。尽量避免遍历xml并手动提取值。
【问题讨论】:
-
这能回答你的问题吗? Deserialize XML with Attributes in C#
-
不,因为他们的 xml 是这样的,很容易反序列化:```
```123 CompName