2012-04-11 6 views
1

Ich versuche, einen RSS basierend auf simplePie zu parsen und und der RSS, den ich analysieren möchte, basiert auf RDF.simplePie kann kein spezifisches RDF-Feld von einem RSS bekommen

und hat einige bestimmte Felder wie zum Beispiel: „Schöpfer“/„identifier“/etc ...

las ich das SimplePie Dokument nach, wie aus einem RSS-spezifischen Bereich erhalten und den folgenden Code (mostlythe gleiche schreiben als SimplePie Beispiel):

der SimplePie Dokument Link:

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(); 
} 

die media_group und media_content (natürlich) kehren immer NULL

wie kann ich bestimmten Bereich von RSS bekommen?

+1

+1. Das bereitet mir Kopfschmerzen. Ja, Nicht-Standard-Feeds mögen ein Schmerz oder eine schlechte Übung sein, aber ist es wirklich besser, zusätzliche Sachen in die '' zu werfen und herumzuspielen, um etwas sinnvolles daraus am anderen Ende zu analysieren? – jammypeach

Antwort

1

Nicht standardisierte Feeds können SimplePie und mir Kopfschmerzen bereiten. Sie können das Roh-XML von SimplePie erhalten und dann etwas anderes zum Parsen/Manipulieren verwenden. Ich habe das in einigen Fällen mit SimpleHTMLDom getan ...