PHP5 SOAP XML в массив - PullRequest
       28

PHP5 SOAP XML в массив

1 голос
/ 24 декабря 2009

У меня в настоящее время есть возврат от вызова SOAP.

<soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope">
  <soapenv:Body>
    <ns:getMakeResponse xmlns:ns="http://ws.fds.com">
      <ns:return>

        <ResponseCode>000</ResponseCode>  
        <ResponseDescription>No Errors</ResponseDescription>

        <MakeReturn>
          <Make>JEEP</Make>
          <MakeDescription>JEEP</MakeDescription>
        </MakeReturn>

          <MakeReturn>
            <Make>CHRY</Make>
            <MakeDescription>CHRYSLER</MakeDescription>
          </MakeReturn>

      <ns:return>
    </ns:getMakeResponse>
  </soapenv:Body>
</soapenv:Envelope>

Как я могу превратить это в массив, как показано ниже, или что-то подобное?

Array
(
    [id] => 1
    [responsecode] => 000
    [responsedescription] => No Errors
    [0] => Array
        (
            [make] => JEEP
            [makedescription] => JEEP
        )
    [1] => Array
        (
            [make] => CHRY
            [makedescription] => CHRYSLER
        )
)

Спасибо за любую помощь!

Ответы [ 2 ]

3 голосов
/ 24 декабря 2009

Я нашел это http://www.bin -co.com / PHP / скрипты / xml2array / Который, кажется, работает довольно хорошо.

0 голосов
/ 22 января 2010

Если вы используете нативный PHP SoapClient, вывод уже сбрасывается в объект PHP ...

$client = new SoapClient('...wsAvailability.asmx?wsdl', array('trace' => true, 'exceptions' => 0));
$output = $client->GetWhateverMethod($input);
$xml = $client->__getLastResponse();

Посмотрите на объект $ output, он должен иметь большую часть того, что вы хотите ...

...