2013-02-08 3 views
2

Я пытаюсь разобрать a result from facebook API, который возвращает этот XML:Xpath и facebook апи

<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

Смежные вопросы