SoapClient返回null但__last_response已填充,但仍无法使用simplexml_load_string创建对象

时间:2013-03-06 14:38:25

标签: php soap soap-client

我创建了一个使用我无法控制的wsdl的SOAP客户端。我调用webservice并返回null

当我从__getLastRequest()复制XML并在SOAP UI中使用它时,我得到了回复。

当我在soap客户端上查看__last_response时,我可以看到一个xml字符串

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
  <s:Body>
    <GetResponse xmlns="http://tempuri.org/">
      <GetResult>5923946</GetResult>
    </GetResponse>
  </s:Body>
</s:Envelope>

当我尝试将__last_response传递给simplexml_load_string时,不会创建对象。

为什么不能使用两种情况下提供的XML创建对象?

1 个答案:

答案 0 :(得分:0)

SimpleXML无法加载其中包含命名空间的xml字符串。我发现的解决方案是删除命名空间。你可以这样做:

$response=str_replace("<s:","",$response);

希望这能解决你的问题。