2009-10-13 101 views
2

我創建了一個函數,它使用Zend_Feed從Flickr消費RSS提要。 不幸的是我正在努力提取一些密鑰!Zend_Feed entires和冒號分隔鍵

我可以得到< title>和這樣的呼應

$entry->title(); 

但我怎麼能呼應了類似<媒體:縮略圖>?

我確定有這樣一個完全簡單的方法,但我不能爲我的生活弄清楚它!

下面是一個示例項

<entry> 
<id>http://gdata.youtube.com/feeds/api/videos/T-Pq6QSeH7A</id> 
<published>2009-09-16T11:51:20.000Z</published> 
<updated>2009-09-18T02:37:35.000Z</updated> 
<category scheme='http://schemas.google.com/g/2005#kind' term='http://gdata.youtube.com/schemas/2007#video'/> 
<category scheme='http://gdata.youtube.com/schemas/2007/categories.cat' term='Games' label='Gaming'/> 
<category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat' term='torchlight'/> 
<category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat' term='vanquisher'/> 
<category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat' term='mmo'/> 
<category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat' term='mmorpg'/> 
<category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat' term='massively'/> 
<category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat' term='multiplayer'/> 
<category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat' term='online'/> 
<category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat' term='game'/> 
<category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat' term='mmohub'/> 
<category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat' term='hub'/> 
<category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat' term='forums'/> 
<category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat' term='reviews'/> 
<title type='text'>Torchlight - Vanquisher Gameplay</title> 
<content type='text'>I'm so excited to reveal the latest trailer for Torchlight, featuring the third class, the Vanquisher!</content> 
<link rel='alternate' type='text/html' href='http://www.youtube.com/watch?v=T-Pq6QSeH7A&amp;feature=youtube_gdata'/> 
<link rel='http://gdata.youtube.com/schemas/2007#video.responses' type='application/atom+xml' href='http://gdata.youtube.com/feeds/api/videos/T-Pq6QSeH7A/responses'/> 
<link rel='http://gdata.youtube.com/schemas/2007#video.related' type='application/atom+xml' href='http://gdata.youtube.com/feeds/api/videos/T-Pq6QSeH7A/related'/> 
<link rel='http://gdata.youtube.com/schemas/2007#mobile' type='text/html' href='http://m.youtube.com/details?v=T-Pq6QSeH7A'/> 
<link rel='self' type='application/atom+xml' href='http://gdata.youtube.com/feeds/api/users/mmolifetv/uploads/T-Pq6QSeH7A'/> 
<author> 
    <name>mmolifetv</name> 
    <uri>http://gdata.youtube.com/feeds/api/users/mmolifetv</uri> 
</author> 
<gd:comments> 
    <gd:feedLink href='http://gdata.youtube.com/feeds/api/videos/T-Pq6QSeH7A/comments' countHint='0'/> 
</gd:comments> 
<media:group> 
    <media:category label='Gaming' scheme='http://gdata.youtube.com/schemas/2007/categories.cat'>Games</media:category> 
    <media:content url='http://www.youtube.com/v/T-Pq6QSeH7A?f=user_uploads&amp;app=youtube_gdata' type='application/x-shockwave-flash' medium='video' isDefault='true' expression='full' duration='97' yt:format='5'/> 
    <media:content url='rtsp://rtsp2.youtube.com/CigLENy73wIaHwmwH54E6erjTxMYDSANFEgGUgx1c2VyX3VwbG9hZHMM/0/0/0/video.3gp' type='video/3gpp' medium='video' expression='full' duration='97' yt:format='1'/> 
    <media:content url='rtsp://rtsp2.youtube.com/CigLENy73wIaHwmwH54E6erjTxMYESARFEgGUgx1c2VyX3VwbG9hZHMM/0/0/0/video.3gp' type='video/3gpp' medium='video' expression='full' duration='97' yt:format='6'/> 
    <media:description type='plain'>I'm so excited to reveal the latest trailer for Torchlight, featuring the third class, the Vanquisher!</media:description> 
    <media:keywords>torchlight, vanquisher, mmo, mmorpg, massively, multiplayer, online, game, mmohub, hub, forums, reviews</media:keywords> 
    <media:player url='http://www.youtube.com/watch?v=T-Pq6QSeH7A&amp;feature=youtube_gdata'/> 
    <media:thumbnail url='http://i.ytimg.com/vi/T-Pq6QSeH7A/2.jpg' height='90' width='120' time='00:00:48.500'/> 
    <media:thumbnail url='http://i.ytimg.com/vi/T-Pq6QSeH7A/1.jpg' height='90' width='120' time='00:00:24.250'/> 
    <media:thumbnail url='http://i.ytimg.com/vi/T-Pq6QSeH7A/3.jpg' height='90' width='120' time='00:01:12.750'/> 
    <media:thumbnail url='http://i.ytimg.com/vi/T-Pq6QSeH7A/0.jpg' height='240' width='320' time='00:00:48.500'/> 
    <media:title type='plain'>Torchlight - Vanquisher Gameplay</media:title> 
    <yt:duration seconds='97'/> 
</media:group> 
<gd:rating average='5.0' max='5' min='1' numRaters='1' rel='http://schemas.google.com/g/2005#overall'/> 
<yt:statistics favoriteCount='0' viewCount='24'/> 

我想提取從條目的第一個縮略圖URL。

回答

1

入門$>媒體() - >縮略圖()

可以工作或

$entry->{'media:thumbnail'} 

但IAM不是100%肯定。

+0

可悲的是這些似乎都不起作用。謝謝你的想法! – sfusion 2009-10-13 12:56:35

2

密鑰中的冒號意味着正在使用命名空間。媒體之一,將在XML中的其他地方定義爲指向雅虎域,這是在RSS中找到的一個非常常見的問題。 Zend_Feed有時會取消命名空間,所以你嘗試$ entry-> thumbnail()?

另外,我記得有一個getDom方法會返回給你一個DOMDocument,你可以使用所有的內置NS匹配方法(例如getElementsByTagNameNS)。

或者,看看新的Zend_Feed_Reader的東西 - 它可能已經支持媒體命名空間,或者編寫你自己的適配器非常簡單 - 在亞馬遜的一些文檔中包含了一些例子,你可以複製。

+0

Zend_Feed_Reader確實支持名稱空間屬性。 – 2009-10-13 20:24:02

+0

你有沒有我可以使用getDom方法的例子? – sfusion 2009-10-14 13:04:40

0

我已經通過使用Zend Gdata YouTube解決了這個問題,但我仍然對如何以這種方式完成這項工作感興趣,因爲我將來可能會使用Zend_Feed來做類似的事情!