使用Soap响应的PHP中simplexml_load_字符串存在问题 少量编辑*

使用Soap响应的PHP中simplexml_load_字符串存在问题 少量编辑*,php,simplexml,Php,Simplexml,我正在使用SoapClient处理一个Web服务,该服务产生一个任意类型的序列。我尝试在响应上使用simplexml\u load\u字符串(可能错误),但失败导致未设置simplexml\u load\u字符串 除此之外,我调用web服务的PHP代码:(这里没有问题) 然后,我将响应捕获为$response: $response=$client->uu getLastResponse() 当我得到var_dump$响应时: string(1404) "XmlOut<Organisatio

我正在使用SoapClient处理一个Web服务,该服务产生一个任意类型的序列。我尝试在响应上使用simplexml\u load\u字符串(可能错误),但失败导致未设置simplexml\u load\u字符串

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

然后,我将响应捕获为$response:

$response=$client->uu getLastResponse()

当我得到var_dump$响应时:

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" 
string(1404)“XmlOutXXXXXXXXX.co.zasuspendorganization1234错误(验证1.0.0):域名域已被挂起状态状态TrueStatusMessageTaskStartIDAC573-1915-4695-a50c-f05b431f8a14”
您将注意到一个XmlOut,后面是XML字符串,后面是一些以statustruestatusMessage开头的文本

该响应实际上是一组anytype。第一个是“XmlOut”,第二个是所有看起来像XML的字符串,然后是“status”、“true”、“statusMessage”、“taskStartId”、“0c5ce73-1915-4695-a50c-f05b431f8a14”

我正在尝试获取以下各项的值:

  • ErrorMessage(即“域已挂起”)
  • 状态(在上述示例中为真)

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

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

试一试


你应该把你正在使用的代码备份。我不记得那是什么了。该字符串肯定是无效的XML,这就是simplexml\u load\u字符串返回false(失败时它会这样做)的原因。刚到办公室。
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" 
var_dump($response);