0

我创建了一个使用我无法控制的 wsdl 的 SOAP 客户端。我调用 web 服务,它返回null

当我从中复制 XML__getLastRequest()并在 SOAP UI 中使用它时,我得到了响应。

当我查看__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 创建对象?

4

1 回答 1

0

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

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

希望这能解决您的问题。

于 2013-03-06T15:31:32.063 回答