2011-08-03 107 views
0
<?php 
    $url = 'https://picasaweb.google.com/data/feed/api/user/114098057261214889617/albumid/5282805114683350385?alt=rss&kind=photo&max-results=1'; 
    $session = curl_init($url); 
    curl_setopt($session, CURLOPT_HEADER, false); 
    curl_setopt($session, CURLOPT_RETURNTRANSFER, true); 
    $response = curl_exec($session); 
    curl_close($session); 
    $xml = simplexml_load_string($response); 
    $gphoto = $xml->channel->item->children('http://schemas.google.com/photos/2007'); 
    echo $gphoto->width;//nothing return 
    ?> 

如何获得picasa rss图片的宽度和高度?谢谢。php simplexml节点`gphoto:width`

XML树在这里:

<?xml version="1.0" encoding="UTF-8" ?> 
- <rss xmlns:exif="http://schemas.google.com/photos/exif/2007" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:gphoto="http://schemas.google.com/photos/2007" xmlns:media="http://search.yahoo.com/mrss/" xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/" xmlns:gml="http://www.opengis.net/gml" xmlns:georss="http://www.georss.org/georss" version="2.0"> 
- <channel> 
- <item> 
... 
    <gphoto:width>1280</gphoto:width> 
    <gphoto:height>960</gphoto:height> 
... 
</item> 
</channel> 
</rss> 
+0

与PHP运行代码5.3.3结果'1280'输出为我​​ –

+0

还有,'的phpinfo()'输出显示,我有'的libxml2 2.7.8'用'XML命名空间支持active'为它值什么 –

+0

@brian_d,没有libxml2 2.7.8,所以我应该下载一个。 –

回答

3
$width = $xml->channel->item->children('gphoto',true)->width; 
$height = $xml->channel->item->children('gphoto',true)->height; 
+0

仍然没有任何回报。 –

+0

嗯,_works here_ ...然后,你的_original_代码在这里工作,我现在看到。 – Wrikken

+0

我可以得到'echo $ xml-> channel-> managingEditor;'但是仍然没有得到'echo $ xml-> channel-> item [0] - > children('gphoto',true) - > height;'我使用PHP 5.2.11。 –

-2

我发现谷歌的API供稿打交道时更容易去除的命名空间。

$response = str_replace('gphoto:', '', $response); 
+2

如果您需要处理真正的XML操作,它将使生活变得更加艰难。因为我认为这是一个非常糟糕的做法,所以不要投票。它在这个特定的情况下当然是'工作',但很容易破损。 – Wrikken