[英]How do I get multiple value of single xml element while deserializing xml to c# object?
我从 xml 文件中获取 xml 数据到 c# ZA8CFDE6331BD59EB2AC96F8911ZB4 如下所示:
Xml:
<OrderItem>
<OrderItemCode>1234</OrderItemCode>
<ASIN>dfsdfcs</ASIN>
<SKU>5MJ1L3</SKU>
<ItemStatus>Unshipped</ItemStatus>
<ProductName>xcv/ProductName>
<Quantity>1</Quantity>
<ItemPrice>
<Component>
<Type>Principal</Type>
<Amount currency="CAD">7.99</Amount>
</Component>
</ItemPrice>
</OrderItem>
c# Model:
[XmlRootAttribute("OrderItem")]
public class OrderItem
{
[XmlElement("OrderItemCode")]
public string OrderItemCode { get; set; }
[XmlElement("ASIN")]
public string Asin { get; set; }
[XmlElement("SKU")]
public string Sku { get; set; }
[XmlElement("ItemStatus")]
public string ItemStatus { get; set; }
[XmlElement("ProductName")]
public string ProductName { get; set; }
[XmlElement("Quantity")]
public long Quantity { get; set; }
[XmlElement("ItemPrice")]
public ItemPrice Item_Price { get; set; }
[XmlElement("PriceDesignation")]
public string PriceDesignation { get; set; }
[XmlElement("Promotion")]
public Promotion Promotion { get; set; }
}
public partial class ItemPrice
{
[XmlElementAttribute("Component")]
public List<Component> Component { get; set; }
}
public partial class Component
{
[XmlElement("Type")]
public string Type { get; set; }
[XmlElement("Amount")]
public Amount Amount { get; set; }
}
public partial class Amount
{
[XmlAttribute("currency")]
public string Currencies { get; set; }
[XmlAttribute("#text")]
public string Price { get; set; }
}
反序列化:
XmlSerializer serializer = new XmlSerializer(typeof(OrderItem));
TextReader reader = new StreamReader(reportPath);
OrderItem ordersListXML = (OrderItem)serializer.Deserialize(reader);
在这里,我想通过反序列化为 c# object 来获取<Amount currency="CAD">7.99</Amount>
的值,并且我能够获取元素<Amount currency="CAD">7.99</Amount>
的属性“货币”的值<Amount currency="CAD">7.99</Amount>
到“Currencies”属性,但在反序列化后无法在我的 c# object 中获取元素<Amount currency="CAD">7.99</Amount>
到“Price”属性的文本“7.99”。
任何人都可以帮助我获得价值!
XmlTextAttribute ( [XmlText]
) 允许将条目的值反序列化为字段。 所以
<Amount currency="CAD">7.99</Amount>
可反序列化为 class
public class Amount
{
[XmlAttribute("currency")]
public string Currencies { get; set; }
[XmlText]
public string Price { get; set; }
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.