繁体   English   中英

使用foreach从API创建XML DOC

[英]Create XML DOC from API using foreach

我有一个eBay交易API到GetOrders的API调用。 拥有数据后,我需要将其返回,并创建一个供其他系统使用的自定义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;

        }
    }
}

尝试这个

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM