【问题标题】:XML instead of jsonXML 代替 json
【发布时间】:2012-03-10 19:03:11
【问题描述】:

我正在尝试使用 XML 响应连接到 API。我让它在 json 中工作(见下文),但我需要它以 xml 格式返回。

//check if you have curl loaded
if(!function_exists("curl_init")) die("cURL extension is not installed");

$url = 'http://api.klout.com/1/klout.xml?users=username&key=keyhere';

$ch=curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$r=curl_exec($ch);
curl_close($ch);

$arr = json_decode($r,true);

foreach($arr['users'] as $val)
{
        echo $val['kscore'].'<br>';
        echo $val['twitter_screen_name'].'<br>';
}

谢谢。

克里斯

【问题讨论】:

  • 查看这篇文章 - stackoverflow.com/a/856887/201648。不完全是你在做什么,但应该解决你的问题。简短的回答,PEAR XML Serializer 应该可以帮助pear.php.net/package/XML_Serializer。如果你能发布一个卷曲数据的样本,我可以帮你分析一下,虽然我马上要睡觉了。
  • 你能否澄清一下“我让它在 json 中工作”是什么意思。您是否已成功解码来自该服务的 JSON 响应并希望解码来自同一服务的备用 XML 响应?在阅读了其他回复后,我意识到这种说法是模棱两可的。

标签: php xml api curl response


【解决方案1】:

您使用的 API 以 XML 格式返回数据。所以,很明显,你不能使用json_decode() 来解析它。相反,您应该查看 SimpleXML。它是解析和写入 XML 数据的默认 PHP 库,通常默认随 PHP 一起安装。

您可以从这个不错的教程开始:

http://www.phpro.org/tutorials/Introduction-To-SimpleXML-With-PHP.html

或者,如果您想非常快速地开始:

http://www.w3schools.com/php/php_xml_simplexml.asp

使用它来解析 XML 数据非常容易。

【讨论】:

  • 感谢您的帮助。这就是我现在所拥有的,无论如何我都无法让它工作。 &lt;?php // set feed URL // add category $feedURL = 'http://api.klout.com/1/klout.xml?users=chris_till%2Ciamchristill&amp;key=e8mpa7nj6dnc8f97aufu78vk'; // read feed into SimpleXML object $sxml = simplexml_load_file($feedURL); foreach($sxml-&gt;users-&gt;user-&gt;kscore as $a){ echo $a; } ?&gt; 谢谢,克里斯
  • @ChrisTill 我无法帮助您,因为我无法获取 XML(我有一个 Not Authorized 响应)。 PHP给你错误还是什么?我很乐意为您提供帮助,所以如果您可以将 PHP 代码和 XML 响应内容粘贴到某处(即 PasteBin)...
猜你喜欢
  • 2015-10-18
  • 1970-01-01
  • 1970-01-01
  • 2011-07-04
  • 1970-01-01
  • 2019-06-30
  • 1970-01-01
  • 1970-01-01
  • 2012-02-27
相关资源
最近更新 更多