2012-04-11 79 views
1

我想解析一個基於simplePie的RSS,並且我想要解析的RSS基於RDF。simplePie無法從RSS獲取特定的RDF字段

,並有一些特定領域,如:「創造者」 /「識別符」 /等...

我讀根據如何從RSS得到具體的字段並寫入以下代碼文件了SimplePie(mostlythe相同作爲示例了SimplePie):

的文檔了SimplePie鏈接:

http://simplepie.org/wiki/reference/simplepie_item/get_item_tags

$feed = new SimplePie(); 
$feed->set_feed_url('http://www.nature.com/nchem/current_issue/rss'); 
$feed->enable_cache(false); 
$success = $feed->init(); 
//$feed->handle_content_type('text/plain'); 

if ($success) 
{ 
    if ($item = $feed->get_item(0)) 
    { 
     // This is probably a bad example because we already support <media:content> natively, but it shows you how to parse through the nodes. 
     $media_group = $item->get_item_tags('http://www.w3.org/1999/02/22-rdf-syntax-ns#', 'rdf'); 
     $media_content = $media_group[0]['child']['http://www.w3.org/1999/02/22-rdf-syntax-ns#']['content']; 
     // $file = $media_content[0]['attribs']['']['url']; 
     // echo $file; 
    } 
    else 
    { 
     echo 'Error: Could not get first item'; 
    } 
} 
else 
{ 
    echo $feed->error(); 
} 

media_group和media_content(當然)總是返回NULL

如何從RSS獲取特定字段?

+1

+1。這現在讓我頭痛。是的,非標準的提要可能是一種痛苦或不好的做法,但是在''中挑選額外的東西真的更好,並且試圖解析另一端有意義的東西? – jammypeach 2012-09-19 08:14:39

回答

1

非標準的提要可以給SimplePie和我頭痛。您可以從SimplePie獲取原始XML,然後使用其他語言來解析/操作它。我在某些情況下使用SimpleHTMLDom做到了這一點...