PHP SoapClient - 返回响应中的属性值

时间:2010-10-18 13:51:03

标签: php soap soap-client

我正在尝试从网络服务中获取值。

答案形成为..

<campaign Id="200"> <name> test </name> </campaign>

PHP代码

SoapClient( "WSDL");

$return = $client->GetCampaigns('Username', 'Password' );

然而,当我尝试访问返回时,我只得到一个名为attribute ...的stdClass。

  public 'Campaign' => 
array
  0 => 
    object(stdClass)[46]
      public 'Name' => string 'chris test' (length=10)

1 个答案:

答案 0 :(得分:2)

我发现我必须向SoapClient提供一个“类映射”,以使其将响应中的对象映射到PHP中定义的类。在WSDL中,类型名称通常是较低的驼峰案例(从小写字母和驼峰案例开始)。

class MY_Campaign {
    private $name;
    function getName () { return $this->name; }
}

$options = array(
        'classmap' => array(
                'campaign' => 'MY_Campaign',
            );
    );
$client = new SoapClient('http://example.com/yourservice?wsdl', $options);
$return = $client->GetCampaigns ();

如果我有WSDL,我可以提供更好的答案。类映射取决于WSDL文件中的类型定义。