我需要从这些 XML 数据中获取订单号(OrderID):
请给予指导。
<?xml version="1.0" encoding="utf-8"?>
<GetOrdersResponse xmlns="urn:ebay:apis:eBLBaseComponents">
<Timestamp>2015-12-10T16:12:55.184Z</Timestamp>
<Ack>Success</Ack>
<Version>967</Version>
<Build>e967_core_Bundled_5642307_R1</Build>
<OrderArray>
<Order>
<OrderID>865826</OrderID>
<OrderStatus>Active</OrderStatus>
</Order>
</OrderArray>
</GetOrdersResponse>
我尝试过这个方法,但它没有生效。
var xDoc = XDocument.Parse(xmlResult);
var orderElements = xDoc.Elements("GetOrdersResponse").Elements("OrderArray").Elements("Order");
foreach (XElement elem in orderElements)
{
var orderId = Convert.ToInt32(_xmlHelper.GetChildElementValue(elem, "OrderID"));
}
请给予指导。
XmlSerializer
做出了很多合理的假设,例如“命名空间由子代继承”和“元素命名为成员名称”,因此你只需要:https://gist.github.com/mgravell/1b91e0e5e6a47bdb3cff42e61281f6ce - 纯粹是 FYI。 - Marc GravellXmlSerializer
),但是如果我们假设OrderArray
实际上是 0、1 或多个,您还可以省略整个类型(OrderArray
),并只需在GetOrdersResponse
上使用public List<Order> OrderArray { get; set; }
。 - Marc Gravellpublic int OrderID { get; set; }
,正确的转换将自动发生。 - Marc Gravell