首页 > 解决方案 > 如何将多个具有相同名称的对象传递给 SOAP?

问题描述

我找到了几个适用于标量但不适用于嵌套对象的答案。为简单起见,这是我应该生成的简化 XML:

<order>
    <date>2019-08-28</date>
    <orderLines>
        <orderLine>
            <productCode>123</productCode>
            <quantity>12</quantity>
            <unitPrice>99.66</unitPrice>
        </orderLine>
        <orderLine>
            <productCode>987</productCode>
            <quantity>1</quantity>
            <unitPrice>4500.00</unitPrice>
        </orderLine>
    </orderLines>
</order>

创建对象的工厂方法执行以下操作:

$order = new \stdClass();
$order->date = "2019-08-27"

$orderItems = [];
foreach($orderManager->getOrderItems() as $orderCartItem){
    $orderItem = new \stdClass();
    $orderItem->productCode = $orderCartItem->getProdCode();
    $orderItem->quantity = $orderCartItem->getQty();
    $orderItem->unitPrice = $orderCartItem->getUnitPrice();
    $orderItems[] = $orderItem;
}

$order->orderLines = $orderItems;

这显然是行不通的,因为我无法确定 orderItem XML 元素的名称。

如何在对象中表示这个 XML 结构?

标签: phpxmlsoap

解决方案


推荐阅读