Как я могу прочитать 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;