php
  • xml
  • api
  • curl
  • response
  • 2012-02-20 55 views 1 likes 
    1

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

    //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>'; 
    } 
    

    谢谢。

    Chris

    +0

    看到这篇文章 - http://stackoverflow.com/a/856887/201648。不完全是你在做什么,但应该解决你的问题。简而言之,PEAR XML Serializer应该帮助http://pear.php.net/package/XML_Serializer。如果你可以发表一个卷曲数据的样本,我可以为你做一个破解,尽管我要在一分钟内睡觉。 – 2012-02-20 12:34:07

    +1

    你能否澄清你的意思是“我在json中工作”。您是否已成功解码来自该服务的JSON响应,并且想要解码来自同一服务的备用XML响应?在阅读其他答复后,我意识到这种说法是不明确的。 – 2012-02-20 12:53:24

    回答

    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数据。

    +0

    感谢您的帮助。这是我现在所拥有的,无论如何我都无法使它工作。 '<?php //设置Feed URL //添加类别 $ feedURL ='http://api.klout.com/1/klout.xml?users=chris_till%2Ciamchristill&key=e8mpa7nj6dnc8f97aufu78vk'; //读入SimpleXML对象的供稿 $ sxml = simplexml_load_file($ feedURL); \t foreach($ sxml-> users-> user-> kscore as $ a){ \t echo $ a; \t} \t?>'谢谢,克里斯 – 2012-02-20 13:44:06

    +0

    @ChrisTill我帮不了你,因为我不能让XML(我有一个*未授权*响应)。 PHP给你错误还是什么?我很乐意为您提供帮助,所以如果您可以在某处粘贴PHP代码和XML响应内容(即* [PasteBin](http://pastebin.com/)*)... – 2012-02-20 14:48:30

    相关问题