如何在 Laravel 中访问 XML 或转换为 JSON

Posted

技术标签:

【中文标题】如何在 Laravel 中访问 XML 或转换为 JSON【英文标题】:How to access XML or transform to JSON in Laravel 【发布时间】:2018-07-20 01:04:43 【问题描述】:

我有这个 XML 响应:

<AuthorisationResult xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://webservice.redletterdays.co.uk/">
<RequestSuccessful>true</RequestSuccessful>
<ErrorMessage/>
<Token>3d3d4a94-87fe-414c-ae0a-fd0e0c4c0060</Token>
</AuthorisationResult>

这就是我写的时候得到的:

return $res;

我如何访问令牌?

我试试:

return $res->Token; 

还有

return $res->children();

但此代码返回错误...

SO,我如何访问 XML 中的 Token 或如何转换为 JSON 并轻松访问 $res->Token 等 Token ...

【问题讨论】:

把你的xml作为文本而不是图片 我把它写成文本 $xml = simplexml_load_string($res); echo $xml-&gt;Token; eval.in/952909 我像这样解决: res = json_encode(simplexml_load_string($res->getBody())); $res = json_decode($res); $token = $res->令牌; 【参考方案1】:

我解决了我的问题:

$res = json_encode(simplexml_load_string($res->getBody()));
$res = json_decode($res);
$token = $res->Token;

【讨论】:

【参考方案2】:

试试这个:

$json = $res->getBody();
$array = json_decode($json);

dump($array);

【讨论】:

我已经尝试过了,但我得到了:simplexml_load_string() 期望参数 1 是字符串,给定对象 @AleksPer 在这种情况下您已经有一个 XML 对象,请查看我的更新答案 是的,但是我得到了空数组,比如 '[ ]' @AleksPer 你是如何获得$res 对象的? 我从 API 获取 $res 对象作为响应

以上是关于如何在 Laravel 中访问 XML 或转换为 JSON的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 查询:如何将布尔值 1 和 0 转换为“通过”或“失败”

如何将Xml输出发送到文件?

如何使用干预图像laravel将webp图像转换为jpeg或png

在 laravel 中将授权码转换为访问令牌不起作用

如何将多维数组转换为Laravel中的集合

PHP - Laravel - 将 Docx 转换为 PDF