Hallo, da ich immer häufiger auf irgendwelche invaliden Feeds stoße, die dann mein MAGPIE parser nicht liest, denke ich ernsthaft darüber nach, mir selbst sowas zu schreiben, das für alle xml-Dateien passt.
Momentan schaffe ich es nicht, dass mir der Parser auch den Link zurückliefert, der hier steckt:
tagesschau.de
Wenn ich dagegen den rss2-feed nehme, findet er alles, der ist nämlich so aufgebaut:
Mit dem Magpie-Parser frage ich standardgemäß so ab:
Ich verstehe das so, dass er 'link' nicht findet, weil es beim atom-feed 'link href' heißt. Wenn ich aber nach 'link href' frage, kommt nix. title findet er natürlich in beiden Fällen. Ich brauche aber den atom-feed, weil nur der die richtige Reihenfolge liefert. (Nach Wichtigkeit statt nach Aktualität). Habt Ihr einen Tipp 1. für diesen Fall und 2. für das Basteln eines eigenen Parsers, der auch invalide feeds ausliest.
Danke Gruß
newbie1955
Momentan schaffe ich es nicht, dass mir der Parser auch den Link zurückliefert, der hier steckt:
Code:
<id>http://www.tagesschau.de</id> <entry> <title>Niederlande: Willem-Alexander feierlich ins Amt eingeführt</title> <link href="[URL="http://www.php-resource.de/forum/view-source:http://www.tagesschau.de/ausland/thronwechsel-niederlande102.html"]http://www.tagesschau.de/ausland/thronwechsel-niederlande102.html[/URL]"/> <id>http://www.tagesschau.de/ausland/thronwechsel-niederlande102.html</id> <updated>2013-04-30T14:42:02.265+02:00</updated> <summary>Willem-Alexander hat seinen Eid als König der Niederlande geleistet. Zur Amtseinführung in der Nieuwe Kerk in Amsterdam versammelten sich neben Politikern des Landes auch Vertreter von Königshäusern aus aller Welt. Am Vormittag hatte Königin Beatrix ihr Amt übergeben.</summary> </entry> <entry> <title>Thronwechsel: Jubel für das neue Königspaar</title>
Wenn ich dagegen den rss2-feed nehme, findet er alles, der ist nämlich so aufgebaut:
Code:
<item> <title>Thronwechsel: Jubel für das neue Königspaar</title> <link>http://www.tagesschau.de/multimedia/bilder/thronwechsel100.html</link>
Code:
{ define('MAGPIE_INPUT_ENCODING', 'UTF-8'); define('MAGPIE_OUTPUT_ENCODING', 'UTF-8'); define('MAGPIE_CACHE_ON', false); define('MAGPIE_CACHE_AGE', 0); require_once('rss_fetch.inc'); $zaehl = 0; $alttitle = ""; if ( $url ) { $num_items = 13; $rss = fetch_rss( $url ); $items = array_slice($rss->items, 0,$num_items); } echo "<ul id='feed'>"; foreach ($items as $item) { $href = $item['link']; $title = $item['title']; $desc = $item['description']; $title = trim($title); if (($title !== '') && ($title !== NULL) && ($title !== $alttitle)) { echo "<li><a href = $href target='_blank'>$title</a></li>"; $alttitle = $title; $zaehl++; } } if ($zaehl == 0) { echo $url; echo " ist leider nicht erreichbar"; echo " (Versuchen Sie, ob Aktualisieren mit F5 hilft)"; } else echo "</ul>"; } ?>
Danke Gruß
newbie1955
Kommentar