无法在php中读取Web服务响应

时间:2015-05-07 16:30:18

标签: php xml web-services soap-client

我正在使用PHP调用Web服务,并且在处理响应方面遇到了困难。

如果我执行了响应的var_dump,那么这是Web服务返回的消息:

     stdClass Object
(
    [webserviceaction] => stdClass Object
        (
            [any] => 

<result xmlns="" corpname="test"><user id="tester">
<inbox><actionitems><title>View transcript</title>
<actionitemurl>../MainView.aspx?tab_page_id=-8&amp;Reset=TRUE</actionitemurl>
</actionitems><actionitems>
.....
</result>

试图将公司名称读为

$getUser->Webserviceaction->Result['corpName']; 

显示NULL。不知道如何读取对象内部的xml。

试图按照http://board.phpbuilder.com/showthread.php?10370637-Cannot-read-web-service-response

获取最后一次回复

无法获取值。 这是代码。

echo "RESPONSE:\n" . $client->__getLastResponse() . "\n";
$xmlstring = $getUser->webserviceaction->any;

$xml = new SimpleXMLElement($xmlstring);


foreach ($xml->result->user->inbox->actionitems as $res)
    echo "Title" . $res->title . "\n";

请告知。

这是我在打印$ xml

时看到的内容
 resultobject(SimpleXMLElement)#8 (2) {
  ["@attributes"]=>
  array(1) {
    ["corpName"]=>
    string(4) "test"
  }
  ["User"]=>
  object(SimpleXMLElement)#9 (4) {
    ["@attributes"]=>
    array(1) {
      ["id"]=>
      string(6) "tester"
    }
    ["Inbox"]=>
    object(SimpleXMLElement)#10 (1) {
      ["ActionItems"]=>
      array(2) {
        [0]=>
        object(SimpleXMLElement)#13 (2) {
          ["Title"]=>
          string(15) "View transcript"
          ["ActionItemUrl"]=>
          string(46) "../MainView.aspx?tab_page_id=-8&amp;Reset=TRUE"
        }
        [1]=>
        object(SimpleXMLElement)#14 (2) {
          ["Title"]=>
          string(32) "View Training Exemption Requests"
          ["ActionItemUrl"]=>
          string(40) "../PendingExemptionRequests.aspx?wp=1"


...

1 个答案:

答案 0 :(得分:1)

我认为应该是:

$xmlstring = $getUser->webserviceaction->any;

然后循环应该是:

foreach ($xml->User->ActionItems as $res) {
    echo "Title: " . $res->Title . "\n";
}

简单XML是case-sensitive.。并且没有result元素,这是顶级XML对象的标记。