使用Soap响应在PHP中使用simplexml_load_string时出现问题

时间:2012-03-05 20:19:31

标签: php simplexml

  • 很少编辑*

我正在使用SoapClient来处理Web服务,该服务产生一系列anyTypes。我试图在响应上使用simplexml_load_string(可能是错误的)并且它失败导致simplexml_load_string没有被设置。

除此之外,我调用Web服务的PHP代码:(这里没问题)

$client->InvokeWorkflow( $params );

然后我将回复视为$ response:

$ response = $ client-> __ getLastResponse();

当我得到var_dump $ response时,我得到:

string(1404) "XmlOut<Organisations xmlns="http://www.XXXXXXXX.net/Schemas/Provision/Organisations.xsd"><Organisation xmlns="http://www.XXXXXXXX.net/Schemas/Provision/Organisations.xsd"><DomainName>XXXXXXXXX.co.za</DomainName><Action>Suspend</Action><ActionType>Organisation</ActionType><InternalReference>1234</InternalReference><StatusInfo><Status>Error</Status><Error><Field> (Validate 1.0.0.0): DomainName</Field><ErrorMessage>The domain is already suspended</ErrorMessage></Error></StatusInfo></Organisation></Organisations>statustruestatusMessagetaskStartIda0c5ce73-1915-4695-a50c-f05b431f8a14" 

您会注意到XmlOut后跟XML字符串,后跟一些以statustruestatusMessage开头的文本。

该响应实际上是一组anyTypes。第一个是“XmlOut”,第二个是所有XML查找字符串,后跟“status”,“true”,“statusMessage”,“”,“taskStartId”,“0c5ce73-1915-4695-a50c-f05b431f8a14”< / p>

我正在尝试获取以下值:

  • ErrorMessage(“域名已被暂停”)
  • 状态(在上例中为真)

1 个答案:

答案 0 :(得分:0)

假设您使用的是PHP的SoapClient类,则不需要/不能将响应加载为字符串。

只需使用$ response变量即可。它已经是一个PHP对象了。

var_dump($response);