【发布时间】:2012-03-05 20:19:30
【问题描述】:
- 很少修改*
我正在使用 SoapClient 处理 Web 服务,该服务会产生一系列 anyType。我尝试在响应中使用 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”
我正在尝试获取以下值:
- ErrorMessage(即“域已暂停”)
- 状态(上例中为真)
【问题讨论】:
-
您应该备份您正在使用的代码。我不记得那是什么了。该字符串绝对是无效的 XML,这就是 simplexml_load_string 返回 false 的原因(这就是它在失败时所做的)
-
会的。刚到办公室。