【问题标题】:Issue accessing XML data访问 XML 数据的问题
【发布时间】:2016-06-28 07:14:06
【问题描述】:

我已连接到 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,这显然意味着我没有正确访问数据。

我很感激任何建议。

【问题讨论】:

    标签: php xml web-services


    【解决方案1】:

    使用-&gt;访问StdClass对象

    您必须使用 -&gt; 访问它,因为它是一个对象。

    从以下位置更改您的代码:

    echo $response['BookID'];
    

    收件人:

    echo $response->BookID;
    

    你可以转换stdClass object to arraylike:

    $array = (array)$stdClass;
    

    【讨论】:

    • Shah,我尝试使用 $response-&gt;BookID; 但没有返回任何内容...任何 cmets?
    • 我收到了我在问题开始时提出的反对意见。但是,当我使用 $response-&gt;BookID; 时,不会返回任何值!
    • $response->GetBookInfoByISBN->BookID 怎么样; ?
    • 我再次使用$response-&gt;GetBookInfoByISBN-&gt;BookID; 并没有返回任何内容。
    • 我可以有演示,我可以通过你的代码! ?
    猜你喜欢
    • 2017-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-26
    • 2015-01-06
    • 1970-01-01
    • 2011-10-29
    相关资源
    最近更新 更多