2011-06-09 47 views
2

我從我的flickr RSS提要中獲取信息,並遇到了路障。諸如圖片網址和標題 之類的內容都是簡單的<Title><Link>標籤。而且我讓他們這樣如何使用php訪問flickr RSS feed中的子標籤?

if($item['title'] !== "") 
    $title = htmlspecialchars(stripslashes($item['title'])); 
else 
    $title = $settings['default_title']; 

$url = $item['link']; 

但在Flickr的RSS提要標籤和說明都是這樣

<media:category scheme="urn:flickr:tags">coffee coding</media:category> 
<media:description type="html"> <p>even coffee isn't helping with coding today<br /> :(</p> </media:description> 

如何訪問這些標記輸出?我曾嘗試

$tag = $item['media_category']; 
$desc = $item['media_description']; 

而且

$tag = $item['media:category']; 
$desc = $item['media:description']; 

似乎都沒有工作?

+0

你是如何加載RSS? SimpleXML的? DOM文檔? – 2011-06-09 17:50:23

+0

我只是加載簡單的XML – 2011-06-09 17:59:14

+0

可能重複[解析XML與名稱空間使用SimpleXML](http://stackoverflow.com/questions/595946/parse-xml-with-namespace-using-simplexml)你可能也想看看在[this](http://devzone.zend.com/node/view/id/688#Heading3) – Wrikken 2011-06-09 18:06:12

回答

1

要使用SimpleXML訪問XML命名空間的元素,試試這個:

// Load namespaces 
$namespaces = $item->getNamespaces(TRUE); 

// Get media namespace 
$media = $entry->children($namespaces['media']); 
echo $media->category; 
echo $media->description; 

Some more info in this question.