Php Soap, результат дампа как файл XMl? - PullRequest
0 голосов
/ 22 августа 2011

Я получил SOAP (обычный клиент php) Результат по моей просьбе Я хочу сохранить результат в виде файла XML? Но как?

   $result = $client->__soapCall('MYwebServices',array($params));

    $xml = simplexml_load_string($result);

    $fp = fopen("out.xml","w");
    fwrite($fp,$xml);
    fclose($fp);

Ответы [ 3 ]

3 голосов
/ 22 августа 2011

Если вы хотите получить XML, возвращаемый веб-службой, вы должны использовать SoapClient::__getLastResponse() (вместе с опцией trace).

$client = new SoapClient(..., array('trace' => 1));

// Do your __soapCall here

$xml = $client->__getLastResponse();

// Work with the XML string here
1 голос
/ 22 августа 2011
0 голосов
/ 22 августа 2011

Разве приведенный выше код не делает этого, если не попробует:

$result = $client->__soapCall('MYwebServices',array($params));

    $xml = new DOMDocument();
$xml->load($result);
$xml->save("out.xml");

Это может быть сломано, если возвращаемое значение не равно xml или xml неправильно отформатирован, в этом случае попробуйте следующее:

$result = $client->__soapCall('MYwebServices',array($params));
    libxml_use_internal_errors(true);//load if improperly formatted
        $xml = new DOMDocument();
    if ($xml->load($result))
    {
        $xml->save("out.xml");
    }
    else {
        echo "The return data was not xml";
    }
...