使用foreach从API创建XML DOC

本文关键字:XML DOC 创建 API foreach 使用 | 更新日期: 2023-09-27 18:11:09

我有一个API调用eBay交易API到GetOrders。一旦我有了我的数据,我需要返回它,并创建一个自定义XML文档,供不同的系统使用。

我想要得到的是这样的输出对于每个顺序

<Order>
    <OrderNumber>123456789</OrderNumber>
    <OrderDate>2-Jul-2014 14:25:33</OrderDate>
    <Billing>
        <FullName>Full name</FullName>
        <Email>some@email.com</Email>
        <Phone>777-123-1234</Phone>
        <Address>
            <Street1>123 main sr</Street1>
            <City>Hillsville</City>
            <State>VA</State>
            <Code>24343</Code>
            <Country>US</Country>
        </Address>
    </Billing>
</Order>

这是我现在的api调用。

using System;
using System.Web.Http;
using System.Xml;
using System.Xml.Linq;
using eBay.Service.Call;
using eBay.Service.Core.Sdk;
using eBay.Service.Core.Soap;
namespace SellerChain.Areas.eBayAPI.Controllers
{
    public class GetOrdersController : ApiController
    {
        public object Get()
        {
            var apiContext = token.ApiContext();
            var timeFilter = new TimeFilter
            {
                TimeFrom = Convert.ToDateTime("2014-07-01T16:15:34.868Z"),
                TimeTo = DateTime.UtcNow
            };
            const OrderStatusCodeType orderStatus = OrderStatusCodeType.Completed;
            const TradingRoleCodeType orderRole = TradingRoleCodeType.Seller;
            var apiCall = new GetOrdersCall(apiContext)
            {
                DetailLevelList = new DetailLevelCodeTypeCollection
                {
                    DetailLevelCodeType.ReturnSummary
                },
                Pagination = new PaginationType
                {
                    EntriesPerPage = 10,
                    PageNumber = 1,
                },
                IncludeFinalValueFee = true,
                CreateTimeFilter = timeFilter,
                OrderStatus = orderStatus,
                OrderRole = orderRole,

            };
            apiCall.GetOrders(
                timeFilter, 
                (TradingRoleCodeType)Enum.Parse(typeof(TradingRoleCodeType), orderRole.ToString()),
                (OrderStatusCodeType)Enum.Parse(typeof(OrderStatusCodeType), orderStatus.ToString())
                );
            return apiCall;
        }
    }
}

使用foreach从API创建XML DOC

试试这个

var doc = new XDocument(
  new XElement("SEITOrders",
  from o in apiCall.ApiResponse.OrderArray.ToArray()
  select 
  new XElement("order", 
  new XElement("orderID", o.OrderID))));