Добрый день!
Задача следующая, имеется клиент, который общается с сервером через SOAP. Необходимо ответ интерпретировать как XML (для дальнейшего разбора). Код, которым отправляю запрос и обрабатываю ответ:
ini_set('soap.wsdl_cache_enabled', '0');
ini_set('soap.wsdl_cache_ttl', '0');
$client = new SoapClient($wsdl , array( 'exceptions' => 1,'trace' => 1,'login' => $login, 'password' => $password);
var_dump( $client->__getFunctions());
$params["Login"] = '123';
$params["Password"] = '2134';
$result = $client->GetLogin($params);
$xml=$client->__getLastResponse();
$doc= simplexml_load_string($xml);
echo $xml возвращает:
<?xml version="1.0" encoding="UTF-8"?> <Request> <Status>Confirm</Status> <Message>Авторизация прошла успешно!</Message> <ID>279f6b3a-0a13-11e7-a67e-0050568623d9</ID> </Request>
print_r($doc) возвращает:
SimpleXMLElement Object ( )
Т.е. на выходе создался пустой объект. Ошибок через libxml_get_errors не увидел.
В чем может быть проблема? Почему объект не создался корректно?
Спасибо!
попробуйте так
$sxe = new SimpleXMLElement($xml); $output = $sxe->asXML();
Всем спасибо за помощь. Проблема оказалась значительно проще, чем я тут описал.
Дело в том, что SOAP response возвращает в блоке return XML в виде строки, а не с тэгами. Поэтому print_r ($result)/var_dump выводил конечный результат экранируя тэги. Что реально содержится в этой переменной можно было записал ее в файл. В итоге было достаточно сделать: $ParamsUsr = new SimpleXMLElement($result->return);
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости