Possible Duplicate:
How to parse SOAP response without SoapClient
I have a simple nuSoap XML response:
<?xml version="1.0" encoding="utf-8"?> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <soap:Body> <LoginResult xmlns="http://Siddin.ServiceContracts/2006/09">FE99E5267950B241F96C96DC492ACAC542F67A55</LoginResult> </soap:Body> </soap:Envelope> Now I'm trying to parse it with simplexml_load_string as suggested here: parse an XML with SimpleXML which has multiple namespaces and here: Trouble Parsing SOAP response in PHP using simplexml, but I can't get it working.
This is my code:
$xml = simplexml_load_string( $this->getFullResponse() ); $xml->registerXPathNamespace('soap', 'http://schemas.xmlsoap.org/soap/envelope/'); $xml->registerXPathNamespace('xsi', 'http://www.w3.org/2001/XMLSchema-instance'); $xml->registerXPathNamespace('xsd', 'http://www.w3.org/2001/XMLSchema'); foreach($xml->xpath('//soap:Body') as $header) { var_export($header->xpath('//LoginResult')); } But I still get only this in result:
/* array ( ) What am I doing wrong? Or what simple thing am I missing to understand?
The working end result with DOM by MySqlError:
$doc = new DOMDocument(); $doc->loadXML( $response ); echo $doc->getElementsByTagName( "LoginResult" )->item(0)->nodeValue; The working end result with SimpleXML by ndm:
$xml = simplexml_load_string( $response ); foreach($xml->xpath('//soap:Body') as $header) { echo (string)$header->LoginResult; }