Anmelden

Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem bei RSS Feed!



BaSSi
18.07.2007, 10:49
Moin,
Ich bin gerade dabei einen RSS-Feed für eine Homepage zu basteln. Da ich das zum ersten mal mache hab ich nicht sehr viel ahnung davon ;) . Naja, ich hab im internet einige vorlagen gefundn und diese ausprobiert. Firefox zeigt auch immer brav das rss zeichen in der adresszeile an aber wenn man draufklickt zeigt er nur den quelltext der *rss datei... Was hab ich falsch gemacht?

Achso, hier mein quelltext ;)




feed.rss

<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
<title>Titel1</title>
<link>www.firehorns.de</link>
<description>News @ Firehorns</description>
<language>de</language>
<copyright>urheberrechtliche Informationen</copyright>
<pubDate>18.07.2007</pubDate>

<item>
<title>Titel2</title>
<description>Eine kurze Beschreibung des Artikels</description>
<link>Adresse zum gesamten Artikel</link>
<author>Autor des Artikels</author>
</item>

</channel>
</rss>





der html teil :)


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<link rel="alternate" type="application/rss+xml"
href="feed.rss" title="RSS feed for My Page">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Unbenanntes Dokument</title>
</head>

<body>
<a href="feed.rss"><img src="firehorns/images/feeds.png" /></a>
</body>
</html>



Vielen dank im Vorraus
Basti :p

dead_orc
18.07.2007, 15:00
Ich würde ganz spontan darauf tippen, dass der Feed nicht mit dem richtigen MIME Type ausgeliefert wird. Du schreibst zwar im HTML Dokument ganz brav, dass es sich um application/rss+xml handeln soll, beim Aufruf des Feeds aber sendet der Webserver ein text/plain als Content-Type. Das könntest du z.B. umgehen, indem du den RSS Feed als PHP Datei machst und oben drüber ein <?php header('Content-Type: application/rss+xml'); ?> packst.

BaSSi
21.07.2007, 11:14
Mit dem php head hat alles funktioniert!
Aber gibt es nicht noch eine andere Möglichkeit ohne php? Ich meine einfach eine simple xml datei?

mitaki
21.07.2007, 11:59
Wenn der PHP-Trick funktioniert hat, ist der eigentliche Server falsch konfiguriert.
Das solltest du dem Support deines Hosts melden.

Sollte das nichts bringen gibt es noch eine Möglichkeit mit einer .htaccess-Datei, welche die Zeile

AddType application/rss+xml .rss
enthält. Die Datei einfach in das selbe Verzeichnis wie die Feeddatei.

BaSSi
21.07.2007, 14:04
Ist denn mein oben angegebner Quellcode auch 100% richtig? Wie gesagt es könnten fehler drin sein, weil ich mich zu ersten mal mit RSS beschäftige ;).
Vielleicht liegt es auch daran...

mitaki
21.07.2007, 14:44
Soweit ich sehe ja. Mehr Informationen findest du eventuell bei einem RSS-Tutorial (http://www.mnot.net/rss/tutorial/).

BaSSi
21.07.2007, 18:04
Habe es mit folgendem quelltext hinbekommen (natürlich auch mit hilfe des tutorials ;) )



<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>My Page</title>
<link rel="alternate" type="application/rss+xml"
href="feed.rss" title="RSS feed for My Page">
</head>

<body>
</body>
</html>








<?xml version="1.0"?>
<rss version="2.0">
<channel>
<title>Example Channel</title>
<link>http://example.com/</link>
<description>My example channel</description>
<item>
<title>News for September the Second</title>
<link>http://example.com/2002/09/01</link>
<description>other things happened today</description>
</item>
<item>
<title>News for September the First</title>
<link>http://example.com/2002/09/02</link>
</item>


</channel>
</rss>


Läuft einwandfrei :D 8) (http://basti91.ba.ohost.de/rss/RSS.html)
Kann mir vllt noch jemand mit den funktionen helfen?
Was kann ich alles mit Feeds machen?
Ein paar kenne ich schon (pubDate, author,...)
Aber was gibt es da noch?
Danke im Vorraus
Basti :)

Manni
21.07.2007, 18:14
Du kannst beispielsweise die Dublin Core (http://de.wikipedia.org/wiki/Dublin_Core) oder gleich RDF (http://de.wikipedia.org/wiki/Resource_Description_Framework) für noch mehr Informationen verwenden. Google doch einfach mal nach Dublin Core und RSS :)

BTW: Es gibt auch einen Validator für Feeds (http://validator.w3.org/feed/check.cgi?url=http%3A%2F%2Fbasti91.ba.ohost.de%2Frss%2FRSS.html) ;)

BaSSi
21.07.2007, 18:27
Cool, danke für die zwei stichwörter!
Hab mal gegoogelt und bin dabei auf selhtml gestoßen!
Die Metatags kommen doch dann in die xml datei oder?
Muss ich dann noch was anderes in den head schreiben oder reicht das so aus?:) :) :)

Manni
21.07.2007, 19:58
Für DC musst du deinem <rss> tag noch folgenden Namespace verpassen:

xmlns:dc="http://purl.org/dc/elements/1.1/"

Und für RDF entsprechend:

xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns"

Dann kannst du die Tags verwenden:

<item rdf:about="http://example.com/fubar">
<title>Fubar</title>
<link>http://example.com/fubar</link>
<dc:description>
Some description text
</dc:description>
<dc:publisher>me</dc:publisher>
<dc:creator>Fnord</dc:creator>
<dc:rights>Copyright © 2000 me</dc:rights>
<dc:subject>Fubar</dc:subject>
</item>

Natürlich kannst du die auch für deinen Channel verwenden...

BaSSi
21.07.2007, 23:29
Mhh ich habs mal ausprobiert....
Mit safari läufts problemlos aber firefox und IE kapieren das noch nicht richtig xD.



Firefox:

XML-Verarbeitungsfehler: Präfix nicht an Namespace gebunden

Zeile Nr. 4, Spalte 1:<item rdf:about="http://example.com/fubar">


IE merkt erst garnicht das es ein RSS Feed ist

Manni
21.07.2007, 23:38
In dem Fall hast du wahrscheinlich den Namesapce für RDF vergessen:

xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns"

BaSSi
21.07.2007, 23:43
Mhh ich hatte es ja eigentlich mit DC gemacht...
hier mein quelltext ;)


<?xml version="1.0"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
<item rdf:about="http://example.com/fubar">
<title>Fubar</title>
<link>http://example.com/fubar</link>
<dc:description>
Some description text
</dc:description>
<dc:publisher>me</dc:publisher>
<dc:creator>Fnord</dc:creator>
<dc:rights>Copyright © 2000 me</dc:rights>
<dc:subject>Fubar</dc:subject>
</item>

</channel>
</rss>


Und hier (http://basti91.ba.ohost.de/rss/RSS.html)das ganze auf den server

Manni
21.07.2007, 23:57
In der Zeile die der Validator ausspuckt, steht doch eindeutig, was das Problem ist:

line 4, column 0: XML parsing error: <unknown>:4:0: unbound prefix
<item rdf:about="http://example.com/fubar">

Du verwendest eben nicht DC, sondern rdf:about :)

BaSSi
22.07.2007, 00:06
Ah mit dc:about funktionierts! http://www.multimediaxis.de/images/smilies/old/sm_12.gif
eine Kategorie fügt man doch mit dc:subject hinzu oder?
Wo wird die eigentlich beim Browser angezeigt?

Manni
22.07.2007, 12:21
Der Browser unterstützt einige der Dublin Core Meta Informationen wahrscheinlich nicht. Und auch "richtige" Feedreader unterstützen die Information eventuell nicht.

Von daher bringen dir diese zusätzlichen Informationen in vielen Fällen nichts ;)

Und dc:about gibt es btw als Atrribut nicht.

BaSSi
22.07.2007, 16:59
Aber warum verwendet man diese vielfältigen Informationen? Hat DC sonst noch irgendwelche vorteile?
zu dc:about : Soll ich das einfach weglassen? xD

Manni
22.07.2007, 18:20
Die Hauptanwendung für DC iirc ist, statt einer Emailadreese für <author> einen Namen mit <dc:author> angeben zu können. Das verstehen auch die meisten Reader. Die anderen Attribute machen wenig Sinn.

Und das dc:about kannst du einfach weglassen. Wie alles andere, was du nicht brauchst, auch.

BaSSi
22.07.2007, 21:52
Die Hauptanwendung für DC iirc ist, statt einer Emailadreese für <author> einen Namen mit <dc:author> angeben zu können. Das verstehen auch die meisten Reader. Die anderen Attribute machen wenig Sinn.


Cool, Danke für die gute Erklärung!
Hast du selbst schonmal mit dc gearbeitet? Welche attribute findest du wichtig?

Manni
22.07.2007, 22:29
Ich habe früher mich bemüht, so viele Informationen wie möglich in den Feed zu bekommen und habe eine Menge Dublin Core Zeug verwendet. Inzwischen bin ich aber dazu übergegangen, mich auf minimale Informationen zu beschränken - die zusätzlichen Dublin Core Sachen können oft gar nicht verarbeitet werden und sorgen eventuell sogar dafür, dass der ganze Feed vom Reader nicht mehr verstanden wird.

Da ich für das Generieren von ATOM und RSS Feeds Klassen mit den gleichen Schnittstellen benutze, bin ich sowieso auf den kleinsten gemeinsamen Nenner beschränkt. Ich verwende also nur title, description, link, author, pubDate und guid.

BaSSi
23.07.2007, 21:41
Was bitte ist ATOM? :D :confused: :confused:
Aber danke für die große hilfe, hat mich echt weitergebracht!
Vielleicht noch eine frage: Wie halte ich die RSS-Feeds Up to Date? Muss ich die news immer manuel einstellen?

Manni
23.07.2007, 21:57
Was bitte ist ATOM? :D :confused: :confused:
10 Sekunden googlen (http://de.wikipedia.org/wiki/Atom_(Format)) :rolleyes:


Vielleicht noch eine frage: Wie halte ich die RSS-Feeds Up to Date? Muss ich die news immer manuel einstellen?

Entweder das oder du generierst deinen Feed mit Daten zum Beispiel aus eine Datenbank. Das kannst du entweder bei jeder Änderung oder bei jedem Aufruf machen.

BaSSi
23.07.2007, 22:06
Cool Atom ist ja viel geiler :D (Sry das mit googeln ist mir dann auch eingefallen :o )
Mit datenbank meinst du php oder?

Manni
23.07.2007, 22:23
Ja, PHP ist eine Möglichkeit, das zu machen. Allerdings nicht die einzige ;)

BaSSi
23.07.2007, 22:27
Mhh PHP kann ich so gut wie ganich xD
Hab zwar ein 10cm dickes buch hier rumliegen aber ich peils irgendwie nicht so richtig :D :D

Edit:
Irgendwie spinnt heute der Ohost server...
Immer wenn ich eine seite öffne von mir dann zeigt er folgendes an No suitable nodes are available to serve your request.
Hochladen kann ich atm auch nichts...