访问XML数据的问题

时间:2016-03-13 06:42:49

标签: php xml web-services

我已连接到Web服务并以XML文件格式接收数据。当我得到var_dump($response);时,我得到了这个数组:

object(stdClass)#2 (1) {
  ["GetBookInfoByISBN"]=>
  object(stdClass)#3 (14) {
    ["Success"]=>
    bool(true)
    ["ResponseText"]=>
    string(10) "Book Found"
    ["State"]=>
    string(2) "CA"
    ["GetNumber"]=>
    string(8) "1234"
    ["BookID"]=>
    int(4) "12"
  }
}

现在我正试图获得BookID的价值:

$soapclient = new SoapClient('http://wsf.com/BookWS/Book.asmx?WSDL');
$params = array('ISBN' => '1111');
$response = $soapclient->GetBookInfoByISBN($params);
var_dump($response);
<form>
    <p><?php echo $response['BookID']; ?></p>
</form>

我收到此错误Fatal error: Cannot use object of type stdClass as array这显然意味着我无法正确访问数据。

我很感激任何建议。

1 个答案:

答案 0 :(得分:1)

使用->

访问StdClass对象

您必须使用->来访问它,因为它是一个对象。

更改您的代码:

echo $response['BookID'];

要:

echo $response->BookID;

您可以将stdClass object to array转换为:

$array = (array)$stdClass;