Paul: HTML einbinden --- Feed aktualisieren

Moin,
zwei Fragen zu RSS2:

Wenn man HTML Code einbinden möchte, gibt es wohl zwei Möglichkeiten. 1) &lt;img src... /&gt; oder 2) <content:encoded><![CDATA[<img src... ]]></content:encoded> Was ist besser/richtiger?

Dann noch eine allgemeine Frage zu RSS. Wenn man ein gestehendes <item> ändert, wird dieser Punkt dem Benutzer als neuer Eintrag angezeigt wenn er den Feed abonniert hat?

Danke, Paul

  1. moin,

    Dann noch eine allgemeine Frage zu RSS. Wenn man ein gestehendes <item> ändert, wird dieser Punkt dem Benutzer als neuer Eintrag angezeigt wenn er den Feed abonniert hat?

    Das kommt auf die SW des Feedreaders an. Tipp: Teste es selbst mit verschiedenen Feedreadern und validiere Deinen Feed.

    Hotte

    --
    Wenn der Kommentar nicht zum Code passt, kann auch der Code falsch sein.
    1. Danke.

      Und kannst du auch was zu der HTML-Frage sagen?

      Paul

  2. Hallo,

    Wenn man HTML Code einbinden möchte, gibt es wohl zwei Möglichkeiten. 1) &lt;img src... /&gt; oder 2) <content:encoded><![CDATA[<img src... ]]></content:encoded> Was ist besser/richtiger?

    Da gibt es kein richtiger. Es geht auch einfach ohne contend:encoded:

    <description><![CDATA[<img src="...">]]</description>

    CDATA ist ein XML-Feature, d.h. im Prinzip geht es in jedem Feedreader. Das RSS-Board hat mal ein auf Erfahrungen mit Feedreadern und Aggregatoren beruhendes Profil von RSS erarbeitet; in diesem zieht es von Entity-Maskierung und CDATA-Einschluss keines dem anderen vor.

    (In Atom gibt es noch zusätzlich die Möglichkeit, XHTML direkt mittels XML-Namensräumen einzubinden.)

    Warum gibt es dann content:encoded? In den Anfangszeiten von RSS, als noch ein anderer RSS-Dialekt, Version 1.0, populär war, wurde <description> für eine Kurzzusammenfassung in reinem Text, d.h. ohne HTML, vorgesehen. Das content-Modul wurde dann eingeführt, um den ganzen Inhalt eines Items transportieren zu können, inklusive HTML. Dieser Usus transportierte sich dann kurzzeitig zu RSS 2.0, dass <description>-Element für eine Zusammenfassung, content:encoded für den kompletten Inhalt. Dann wurde aber <description> umgedeutet, nun ist es für alles erlaubt und es wird maskiertes- bzw. CDATA-HTML als normaler Inhalt angenommen. content:encoded ist also eigentlich überflüssig geworden, nur der Aggregator Bloglines kann wohl noch die Unterscheidung zwischen Zusammenfassung und Inhalt.

    (Atom kennt übrigens sowohl ein <summary> als auch ein <content>-Element.

    Dann noch eine allgemeine Frage zu RSS. Wenn man ein gestehendes <item> ändert, wird dieser Punkt dem Benutzer als neuer Eintrag angezeigt wenn er den Feed abonniert hat?

    Der Feedreader muss irgendwie einen sich verändernden Eintrag als einen bereits gesehenen und gespeicherten Element erkennen. Dafür gibt es in RSS das <guid>-, in Atom das <id>-Element, da sich ja alle anderen Elemente – Titel, Link, Autor, Inhalt, Etc. – ändern können. Inhalt ist ein String, der möglichst global eindeutig ist, d.h. sich mit keinem anderen überschneidet. Die (GU)ID muss bei der Änderung eines Eintrages immer gleich bleiben. Ein Feedreader hat dann die Möglichkeit den Eintrag als „geändert“ und nicht als „neu“ zu erkennen. Oftmals nimmt man als String für die (GU)ID die URL des Eintrages; diese ändert sich wohl am wenigsten. Auch einmalig erzeugte UUIDs sind beliebt. Ich hab vor einigen Jahren mal ein längeres Beispiel dazu geschrieben.

    (Hilfreiche Fehlermeldungen und sonstige Tipps beim Erstellen von Feeds gibt der Feedvalidator.)

    Tim

    1. Hallo Tim!
      Vielen, vielen Dank für die perfekte Antwort auf meine Frage(n)!

      Paul