【发布时间】:2012-04-01 05:09:07
【问题描述】:
我一直在尝试用 simplexml 和 json_decode 解析 odata 的 xml 和 json 数据,但它不起作用。我得到了无用的数据,当我查询数据并将链接放在地址栏中时,我可以在其中看到我想要的数据。当我将链接放在 simplexml 或 json_decode 方法中并执行 var_dump() 时,其中没有任何数据。
这只是一堆 odata 链接,用于获取数据。例如,
我的原始链接 domain.com/1.0/DataService/Titles(4563)/?devid={...}。
此数据将显示流派、标题和描述,但为了让我获得流派或描述,我需要使用这个 url,即,
domain.com/1.0/DataService/Genre(4563)/?devid={...} 或 domain.com/1.0/DataService/Description(4563)/?devid={...}。
如果使用 oData SDK 可以更轻松地获取数据,那很好,但我已经阅读了位于此处的 SDK 安装,http://odataphp.codeplex.com/。我只是不确定从哪里开始。
编辑
这里有一些示例代码
$url = "http://api.internetvideoarchive.com/1.0/DataService/EntertainmentPrograms()?$expand=MovieCategory,Director,Copyrightholder&$select=MovieCategory/*,Director/*,Copyrightholder/*&developerid=bafd5091-a36d-4103-b435-638dc55d2122&format=atom";
$xml = simplexml_load_file("$url");
var_dump($xml);
你可以将 atom 改为 json 来获取 json 数据。
【问题讨论】:
-
请发布一些代码供其他人了解发生了什么
-
你使用的是什么 php 版本?可能你正在运行 4 ......所以我想你需要 rawurlencode 来逃避 &
-
@Mian_Khurram_Ijazless 好吧,我发布示例代码和示例查询,但我必须在两天内删除我的开发者帐户,因为我暴露了我的开发者 ID。
-
@Mian_Khurram_Ijazless 版本 5.2.4