2016-05-10 5 views
0

私は別のキーと値の形式から、私のSOAPリクエストを変換したい:PHP SOAPClientを使用してキー値XMLを他の形式に変換しますか?

<SOAP-ENV:Header> 
    <ns2:AUTH> 
     <item> 
     <key>username</key> 
     <value>testuser</value> 
     </item> 
     <item> 
     <key>password</key> 
     <value>xxxxx</value> 
     </item> 
    </ns2:AUTH> 
    </SOAP-ENV:Header> 
    <SOAP-ENV:Body> 
    <ns1:getProductConfig/> 
    </SOAP-ENV:Body> 
</SOAP-ENV:Envelope> 

これは私が欲しいものです:

<SOAP-ENV:Header> 
    <ns2:AUTH> 
     <username>testuser</username> 
     <password>xxxxx</password> 
    </ns2:AUTH> 
    </SOAP-ENV:Header> 
    <SOAP-ENV:Body> 
    <ns1:getProductConfig> 
      <partner_id>1</partner_id> 
    </ns1:getProductConfig> 
    </SOAP-ENV:Body> 
</SOAP-ENV:Envelope> 

これは私が新しいのSoapClientオブジェクトを作成し、私のPHPコードです:

$header = new SoapHeader('chainstore-api','AUTH',$headerOptions, FALSE); 

$req = new SoapClient(NULL, $options); 
$req->__setSoapHeaders($header); 
$res = $req->getProductConfig($params); 
echo $res; 

PS:現在、wsdlスタイルではありませんが、私はwsdlも使用するように変更しようと考えています。

答えて

0

これは狂ったように聞こえるかもしれませんが、代わりにWSDLを使用してこれを修正しました。

はるかに簡単です。 WSDLファイルはSOAP要求と応答の両方を決定します。

関連する問題