PHP:带有复杂参数的soapCall

时间:2012-02-01 10:30:03

标签: php xml soap soap-client

我正在尝试在供应商和我之间建立SOAP连接,以便在我们的数据库之间同步数据。 我已经设法用一个简单的soapCall连接他扔了那些php行($ service是我到达的Soap函数的名称,$ data是一个包含我的变量的关联数组):

    $request = new SoapClient($client, array('soap_version' => SOAP_1_1));
    $response = $request->$service($data);

如果我的XML变量方案没有像这个例子中那样的集合,那么这些行就可以工作了:

<?xml version="1.0" encoding="utf-8"?>
    <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
    <soap:Body>
      <ServiceITryToReach xmlns="https://mysuplier:65100/">
        <Login>login</Login>
        <Password>pass</Password>
        <Variables>
          <Variable1>data</Variable1>
          <Variable2>data</Variable2>
        </Variables>
      </ServiceITryToReach>
    </soap:Body>
</soap:Envelope>

在上面的示例中,包含我的变量的关联数组将是:

array('Login'=>'login','Password'=>'pass','Variables'=>array('Variable1'=>'data','Variable2'=>'data'));

但是,如果我的XML方案包含相同类型的变量集合,我如何用PHP中的关联数组表示它?

 <?xml version="1.0" encoding="utf-8"?>
        <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
        <soap:Body>
          <ServiceITryToReach xmlns="https://mysuplier:65100/">
            <Login>login</Login>
            <Password>pass</Password>
            <Variables>
              <Variable>
                 <data>data</data>
              </Variable>
              <Variable>
                 <data>data</data>
              </Variable>
              <Variable>
                 <data>data</data>
              </Variable>
            </Variables>
          </ServiceITryToReach>
        </soap:Body>
    </soap:Envelope> 

总之,我正在寻找另一种简单的方法来向我的供应商索取多个变量。最好的方法是在soapCall方法中使用直接XML输入而不是关联数组。 一个主意 ? 谢谢, 尼科

0 个答案:

没有答案