Hallo,
ich arbeite gerade an einem RSS-Reader und bin auf ein Problem gestoßen, das ich mir beim besten Willen nicht erklären kann.
Der Reader funktioniert für bspw. http://news.google.com/news?ned=us&topic=h&output=rss schon perfekt, das war aber nur zum Testen.
Wollte einen personalisieren Feed der Süddeutschen Zeitung haben, den man sich unter http://www.sueddeutsche.de/news?search=Suchbegriff+eingeben einrichten kann.
Bsp.: http://www.sueddeutsche.de/news/rss?search=HTML&sort=date
Allerdings wird hier Channel-Link nicht gespeichert, bei der Abfrage zum Google-Link klappt es wunderbar. Das Link-Attribut ist auch im RSS zu finden (< link >http://www.sueddeutsche.de< /link >), aber es kann scheinbar nicht gespeichert werden.
Habe mal FeedBucket, ein Online-RSS-Reader, die gleiche URL gegeben, dieser kann den Link wunderbar auslesen (http://www.feedbucket.com/?src=http%3A%2F%2Fwww.sueddeutsche.de%2Fnews%2Frss%3Fsearch%3DHTML%26sort%3Ddate)
Die anderen Attribute, die die SZ mitliefert (title, description, pubDate, managingEditor, etc.), kann ich ebenfalls problemlos auslesen, nur das Link-Attribut nicht.
Jedoch bei einem SZ-eigenen RSS-Feed wie http://rss.sueddeutsche.de/rss/Eilmeldungen kann ich das Link-Attribut auslesen, nur scheinbar nicht bei dem personalisierten Feed.
Hier mal der relevante Teil des PHP-Scripts:
$xml=("http://www.sueddeutsche.de/news/rss?search=HTML&sort=date");
$xmlDoc = new DOMDocument();
$xmlDoc->load($xml);
//get elements from "<channel>"
$channel=$xmlDoc->getElementsByTagName('channel')->item(0);
$channel_title = $channel->getElementsByTagName('title')
->item(0)->childNodes->item(0)->nodeValue;
$channel_link = $channel->getElementsByTagName('link')
->item(0)->childNodes->item(0)->nodeValue;
echo "Channel-Link: '$channel_link'<br />";
$channel_desc = $channel->getElementsByTagName('description')
->item(0)->childNodes->item(0)->nodeValue;
//output elements from "<channel>"
echo("<p><a href='" . $channel_link
. "'>" . $channel_title . "</a>");
echo("<br>");
echo($channel_desc . "</p>");
Ich wäre froh, wenn mir jemand die Ursache für dieses Problem erklären könnte.
LG, DMan