php
  • xml
  • api
  • curl
  • response
  • 2012-02-20 81 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

    相關問題