我正在尝试从网络服务中获取值。
答案形成为..
<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)
答案 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文件中的类型定义。