2013-02-08 60 views
2

我嘗試解析a result from facebook API返回此XML:XPath和Facebook的API

<links_getStats_response xmlns="http://api.facebook.com/1.0/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://api.facebook.com/1.0/ http://api.facebook.com/1.0/facebook.xsd" list="true"> 
    <link_stat> 
    <url>http://www.facebook.com</url> 
    <normalized_url>http://www.facebook.com/</normalized_url> 
    <share_count>1624678</share_count> 
    <like_count>928267</like_count> 
    <comment_count>150197</comment_count> 
    <total_count>2703142</total_count> 
    <click_count>949</click_count> 
    <comments_fbid>405613579725</comments_fbid> 
    <commentsbox_count>2328</commentsbox_count> 
    </link_stat> 
</links_getStats_response> 

我想Facebook的數目喜歡。

這裏是我的代碼:

$apiFacebook="http://api.facebook.com/restserver.php?method=links.getStats&urls=http://www.facebook.com"; 
$parse = simplexml_load_file($apiFacebook); 
$count = $parse->xpath("/links_getStats_response/link_stat/like_count"); 
print_r($count); 

與路徑問題?

回答

1

結果中有命名空間。無論是定義和使用,或使用通配符代替命名空間:

/*:links_getStats_response/*:link_stat/*:like_count 

註冊和使用的命名空間做:

$parse = simplexml_load_file($apiFacebook); 
$parse->registerXPathNamespace('fb', 'http://api.facebook.com/1.0/'); 
$count = $parse->xpath("/fb:links_getStats_response/fb:link_stat/fb:like_count"); 

字符串「FB」,可以任意選擇。

+0

嗨,感謝它的工作! – Alexandre 2013-02-08 16:37:47