2017-01-11 32 views
0

我已經成功地使用PHP和SoapClient將請求傳遞給使用數組的第三方API。通過從SoapClient中傾出請求,傳遞給API的XML數據是什麼。PHP SoapClient請求 - 數組結構

現在我遇到了一個必需的XML結構< extendedData>我無法作爲數組傳遞;

<TypeID>int</TypeID> 
<FooID>int</FooID> 
<BarID>int</BarID> 
<extendedData> 
    <Service_CreateFields> 
     <FieldName>my string 1</FieldName> 
     <FieldValue>my string 2</FieldValue> 
     <Comments>my string 3</Comments> 
    </Service_CreateFields> 
    <Service_CreateFields> 
     <FieldName>my string 4</FieldName> 
     <FieldValue>my string 5</FieldValue> 
     <Comments>my string 6</Comments> 
    </Service_CreateFields> 
</extendedData> 

我試過下面的數組,但它無法產生具有兩個或多個< Service_CreateFields>

$data = array(
    "TypeID" => "11", 
    "FooID" => "22", 
    "BarID" => "33", 
    "extendedData" => array(
     "Service_CreateFields" => array(
       "FieldName" => "my string 1", 
       "FieldValue" => "my string 2", 
       "Comments" => "my string 3", 
      ), 
      "Service_CreateFields" => array(
       "FieldName" => "my string 4", 
       "FieldValue" => "my string 5", 
       "Comments" => "my string 6", 
      ), 
    ), 
); 

有沒有人有這方面的經驗的XML請求?

+0

使用foreach循環,這將有XML標記爲'Service_CreateFields'它會產生與孩子的XML爲你 –

回答

1

嘗試包裹每個孩子在自己的數組:爲`extendedData`

$data = array(
    "TypeID" => "11", 
    "FooID" => "22", 
    "BarID" => "33", 
    "extendedData" => array(
     "Service_CreateFields" => array(
      array(
       "FieldName" => "my string 1", 
       "FieldValue" => "my string 2", 
       "Comments" => "my string 3", 
      ), 
      array(
       "FieldName" => "my string 4", 
       "FieldValue" => "my string 5", 
       "Comments" => "my string 6", 
      ) 
     ) 
    ) 
); 
+0

是的,這個陣列結構工作得很好!非常感謝。 – Sam