Intereting Posts
Как войти в систему с использованием двух разных моделей или класса идентификации коммутатора в yii2? baseUrl видит помощника, не работающего над ZendFramework 2 Увеличение ограничения вызовов функций вложенности Объединить несколько строк HTML в одном с PHP? Линейные разрывы, вызванные метками P и BR Magento получает код языка в файле шаблона Swift Mailer – не удается отправить почту и не удается найти журналы ошибок Неопределенная константа класса 'MYSQL_ATTR_INIT_COMMAND' в константе неопределенного класса (PHP 5.5.3) Почему для функций PHP preg_ * требуются разделители regexp? Пользователь MySQL, указанный как определитель, не существует Подключение к MySQL в MAMP Symfony2: базовый стол или вид не найдены: 1146 Получить подсказки параметров для моих собственных функций PHP в Notepad ++ Вызов статического метода из экземпляра в PHP, будущая усталость? многие элементы списка для другого str_replace ключи в многомерном массиве PHP

Как читать SOAP-ответ Конверт по PHP

Как я могу прочитать error_code из этого конверта ответа SOAP? Моя версия PHP: 5.2.0.

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope"> <soap:Body> <Response xmlns="http://xxx.gateway.xxx.abcd.com"> <return> <transaction_id>1234567</transaction_id> <error_code>109</error_code> </return> </Response> </soap:Body> </soap:Envelope> 

Мне просто нужно прочитать значение тега error_code.here значение: 109

Я использую nusoap. Я использовал приведенный ниже код, но не работал должным образом:

 $response=htmlspecialchars($client->response, ENT_QUOTES); $xml = simplexml_load_string($response); $ns = $xml->getNamespaces(true); $soap = $xml->children($ns['soap']); $error_code = $soap->body->children($ns['error_code']); 

 <?php $string = <<<XML <soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope"> <soap:Body> <Response xmlns="http://xxx.gateway.xxx.abcd.com"> <return> <transaction_id>1234567</transaction_id> <error_code>109</error_code> </return> </Response> </soap:Body> </soap:Envelope> XML; $xml = new SimpleXMLElement($string); $xml->registerXPathNamespace("soap", "http://www.w3.org/2003/05/soap-envelope"); $body = $xml->xpath("//soap:Body"); $error_code = (string)$body[0]->Response->return->error_code; print_r($error_code); ?> 

ИЛИ

  $xml = simplexml_load_string($string); $error_code = (string)$xml->children('soap', true) ->Body ->children() ->Response ->return ->error_code;