PHP SoapClient – возврат значений атрибутов в ответ

Я пытаюсь получить значения из веб-службы.

Ответ формируется как ..

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

PHP-код

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

Но когда я пытаюсь получить доступ к возврату, я получаю только stdClass с атрибутом name.

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

Я нахожу, что я должен предоставить «classmap» для 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.