【发布时间】:2018-03-19 02:34:57
【问题描述】:
我使用 Guzzle 向后端的外部 API 发出 XML 请求。
这是我创建 Guzzle 客户端的地方:
$client = new Client(); //GuzzleHttp\Client
这是我提出请求的地方:
$request = $client->request( 'GET', 'This is where I put the URL');
这是我得到 Guzzle 响应并尝试解析它的地方:
$xml = $request->getBody()->getContents();
$xml = new \SimpleXMLElement($xml);
$xml = simplexml_load_string($xml);
如果我这样做:
dd($xml);
我收到这个作为回报:
SimpleXMLElement {#240 ▼
+"StatusCode": "1"
+"StatusDescription": "Duplicated request"
+"MerchantId": "***"
+"Company": "***"
+"CompanyCity": "***"
+"CompanyPhone": "***"
+"CompanyDbaName": "***"
+"Balance": "99965"
+"TransDate": "2017-10-07"
+"TransTime": "06:58:48"
+"ProductVer": "***"
+"PromoVer": object
+"SoftVer": object
+"InvoiceNumber": object
}
我的问题是我不知道如何解析这个。我想在StatusCode 中获取1。
如果我这样做:
dd($xml->StatusCode);
我收到这个:
SimpleXMLElement {#242 ▼
+0: "1"
}
我怎样才能得到1?
【问题讨论】:
-
$xml->StatusCode仍然是一个对象。您可以通过各种方式将其转换为字符串,例如简单地echo $xml->StatusCode。 -
谢谢,成功了。
-
我提交了一个包含更多细节的答案。
标签: php laravel-5 xmlhttprequest simplexml guzzle