Die Komponente gb.web.feed – kurz WebFeed – entspricht der RSS-2.0-Spezifikation, die Sie auch unter https://cyber.harvard.edu/rss/rss.html nachlesen können.
Einsatzgebiete für RSS sind beispielsweise Nachrichtenseiten, Blogs oder Podcasts, deren Inhalte regelmäßig – oft mehrmals täglich – aktualisiert werden. Sie sollten neben der RSS-Dokument-Struktur und der Terminologie von RSS auch XML als Basis von strukturierten Daten kennen, um die Komponente WebFeed erfolgreich einsetzen zu können.
Eine RSS-Datei ist eine XML-Datei, die aus mehreren `Kanälen` besteht, die wiederum aus `Einträgen` bestehen. Jeder Eintrag ist eine Einheit, die eine „Neuigkeit“ oder was auch immer Inhalt des Feeds ist, zusammenfasst. Die Komponente gb.web.feed kann RSS-Dateien sowohl lesen als auch schreiben und unterstützt Bilder, Medienanhänge, Texteingabe-Elemente und Cloud-Tags.
Beispiel für einen Ausschnitt aus einem RSS-Feed:
<?xml version="1.0" encoding="UTF-8" ?> <?xml-stylesheet href="/resources/xsl/rss2.jsp" type="text/xsl"?> <rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"> <channel> ... <item> <title>Corona-Pandemie ...</title> <link>https://www.....html</link> <pubDate>Sun, 11 Oct 2020 10:14:50 +0200</pubDate> ... <description>Die gemeldeten Infektionszahlen bleiben hoch. ...</description> </item> ... </channel> </rss>
Diese Klasse repräsentiert ein RSS-Dokument. Seine Eigenschaften sind die seiner einzelnen Elemente. Sie verhält sich wie ein Lese-Schreib-Array von RssItem-Objekten.
Im folgenden Beispiel werden die RSS-Feed-Daten im XML-Format (→ Kapitel 18.12.5 RSS-Reader) einer Webseite ausgelesen. Hier der gekürzte RSS-XML-Quelltext-Ausschnitt für einen Eintrag:
<item> <title>DFB-Elf ...</title> <link>http://www.unsersport.de/fussball/nationalmannschaft/...html</link> <description>Die Nationalmannschaft gewinnt in Krusemark mit 12:0 gegen den SV Heidesand.</description> </item>
Sie können die einzelnen RSS-Einträge in der Reihenfolge durchlaufen, in der sie im RSS-Dokument vorkommen:
Dim hRss As Rss Dim hRssItem As RssItem For Each hRssItem In hRss ... Next
Der folgende Quelltext liefert ein RssItem an der Position `Index` RSS-Dokument zurück:
Dim hRss As Rss Dim hRssItem As RssItem hRssItem = hRss [ Index As Integer ]
So ersetzen Sie einen existierenden Eintrag im RSS-Dokument an der Position `Index`:
Dim hRss As Rss Dim hRssItem As RssItem hRss [ Index As Integer ] = hRssItem
Die Klasse Rss verfügt über diese Eigenschaften:
Eigenschaft | Datentyp | Beschreibung |
---|---|---|
Title | String | Der Name oder Titel des Feeds. |
Link | String | Die URL zu der Website, die diesem Feed entspricht. |
Description | String | Liefert eine Beschreibung des Inhalts des Feeds. |
Categories | RssCategory[] | Repräsentiert ein Array von Kategorien für diesen Feed. |
Cloud | RssCloud | Liefert die Beschreibung eines zugehörigen Cloud-Services. |
Copyright | String | Copyright-Hinweis für den Inhalt des Feeds. |
Count | Integer | Gibt die Anzahl der RssItems im RSS-Dokument zurück. |
Docs | String | Gibt einen Link zur RSS-Spezifikation zurück, um darüber zu informieren, was eine RSS-Datei ist, falls die Dokumentation existiert. |
Generator | String | Nennt das Programm, mit dem der Feed erzeugt wurde. |
Image | RssImage | Liefert ein zum Feed gehörendes Bild. |
Language | String | Die Sprache, in der der Inhalt des Feeds geschrieben ist. Verwenden Sie einen nach https://cyber.harvard.edu/rss/languages.html definierten Werte ! |
LastBuild | RssDate | Das Datum und die Zeitzone der letzten Änderung des Feed-Inhalts. Wenn die Eigenschaft nicht gesetzt ist, so wird die Zeit voreingestellt, zu der das XML-Dokument in der lokalen Zeitzone geschrieben wurde. |
ManagingEditor | String | EMail-Adresse des leitenden (Feed-)Redakteurs. |
Pub | RssDate | Veröffentlichungsdatum/Zeitzone des Feeds. Eine Zeitung mit täglicher Veröffentlichung würde einen Feed zum Beispiel mindestens einmal täglich ändern. Wenn die Voreinstellung nicht gesetzt ist, wird die Zeit voreingestellt, zu der das XML-Dokument in der lokalen Zeitzone geschrieben wurde. |
Rating | String | PICS-Bewertung des Feeds – falls diese existiert. |
SkipDays | Integer[ ] | Ein Hinweis für Nachrichtenaggregatoren. Er gibt eine Anzahl von Wochentagen an (gb.Monday, gb.Tuesday usw.), an denen keine neuen Inhalte im Feed zu erwarten sind. Ein Client kann diese Einstellung ignorieren. Er kann sie aber auch verwenden, um Traffic zu sparen. Sie können nur bis zu 7 Skip-Tage angeben. |
SkipHours | Integer[ ] | Ein Hinweis für Nachrichtenaggregatoren. Er gibt eine Anzahl von Stunden im Bereich von 0 bis 23 an, in denen kein neuer Inhalt im Feed zu erwarten ist. Ein Client kann diese Einstellung ignorieren, kann sie aber auch verwenden, um Traffic zu sparen. Sie können nur bis zu 24 Skip-Stunden angeben. |
TextInput | RssTextInput | Beschreibt ein Texteingabefeld, das mit dem Feed angezeigt werden soll. |
TTL | Integer | 'Time To Live' gibt an, wie lange der Inhalt des Feeds zwischengespeichert werden darf. Die Einheit von TTL sind Minuten. |
WebMaster | String | EMail-Adresse des Webmasters. |
Tabelle 24.12.0.1 : Eigenschaften der Klasse Rss
Die Klasse Rss verfügt über diese Methoden:
Methode | Rückgabetyp | Beschreibung |
---|---|---|
Sub Add ( Item As RssItem [ , Index As Integer ] ) | - | Fügt dem Dokument ein Rss-Item hinzu. Wenn der Index angegeben wird, so wird das Element an der angegebenen Position im Array von Elementen eingefügt. Standardmäßig wird es am Ende eingefügt. |
Sub Clear ( ) | - | Alle Eigenschaften des Rss-Objekts werden auf Null gesetzt und das Element-Array komplett geleert. |
Sub FromString ( argData As String ) | - | Liest das RSS-Dokument im XML-Format, das unter `argData` angegeben ist und füllt die Eigenschaften dieses Rss-Objekts. |
Function ToString ( ) | String | Konvertiert ein Rss-Objekt in ein XML-Dokument und gibt seinen Inhalt zurück. |
Sub Remove ( Index As Integer [ , Length As Integer ] ) | - | Entfernt so viele Rss-Einträge aus dem Element-Array, wie es 'Length' angibt - beginnend bei der Position 'Index'. Standardmäßig ist 'Length' gleich 1. |
Sub Reverse ( ) | - | Kehrt die Reihenfolge der Rss-Einträge im Element-Array um. |
Sub Sort ( [ Mode As Integer ] ) | - | Sortiert die Rss-Einträge nach ihrem Datum. Sie können den Modus als gb.Ascent oder gb.Descent auswählen. Die Standardeinstellung ist absteigende Sortierung, so dass die neuesten Artikel zuerst im Dokument stehen. |
Tabelle 24.12.0.2 : Methoden der Klasse Rss
Eigenschaften der Klasse:
Eigenschaft | Datentyp | Beschreibung |
---|---|---|
Category | String | Die Zeichenkette beschreibt die Kategorie. Verwenden Sie Schrägstriche als Trennzeichen, um Kategorien hierarchisch zu strukturieren. |
Domain | String | Die URL zu der Website, die diesem Feed entspricht. Die Kategorie-Domäne ist eine ID oder eine URL zu einer Kategorie-Beschreibung. |
Tabelle 24.12.0.3 : Eigenschaften der Klasse RssCategory
Die Klasse verfügt über die folgenden drei Integer-Konstanten:
RssCloud.XmlRpc (0) RssCloud.Soap (1) RssCloud.HttpPost (2)
Das sind die Eigenschaften der Klasse:
Eigenschaft | Datentyp | Beschreibung |
---|---|---|
Domain | String | Domänenname des Anwendungsservers. |
Path | String | Der Skript-Pfad auf dem Server. |
Protocol | Integer | `Protocol` repräsentiert das zu verwendende RSSCloud-Protokoll. Wahlweise XmlRpc, Soap oder HttpPost. |
RegisterProcedure | String | Name des auf der Serverseite aufzurufenden Registrierungsverfahrens. |
Tabelle 24.12.0.4 : Eigenschaften der Klasse RssCloud
Sie können die Klasse erzeugen:
Dim hRssDate As RssDate hRssDate = New RssDate ( [ Date As Date, Zone As String ] )
Diese Klasse besitzt nur zwei Eigenschaften:
Eigenschaft | Datentyp | Beschreibung |
---|---|---|
Date | Date | Date ist das von diesem Objekt repräsentierte Datum. |
Zone | String | Zone ist die Zeitzone – relativ zu der das Datum eingefügt wurde. Beispiel: Sun, 11 Oct 2020 10:14:50 +0200 . |
Tabelle 24.12.0.5 : Eigenschaften der Klasse RssDate
Die Klasse verfügt über diese drei Eigenschaften:
Eigenschaft | Datentyp | Beschreibung |
---|---|---|
Length | Long | Die Länge der angehängten Datei in Bytes. |
Type | String | Gibt den MIME-Typ der Datei zurück oder legt ihn fest. |
Url | String | Die URL der angehängten Datei. |
Tabelle 24.12.0.6 : Eigenschaften der Klasse RssEnclosure
GUID steht für 'Globally Unique IDentifier' – als weltweit eindeutigem Bezeichner für einen bestimmten Feed-Item/Artikel. Die Klasse hat diese Eigenschaften:
Eigenschaft | Datentyp | Beschreibung |
---|---|---|
Guid | String | GUID-Zeichenkette. Der Wert ist eine URL. |
IsPermaLink | Boolean | Gibt zurück, ob dieser GUID ein Permalink ist oder setzt einen passenden Wahrheitswert. Der Standardwert dieser Eigenschaft ist True. |
Tabelle 24.12.0.7 : Eigenschaften der Klasse RssGuid
Die Klasse RssImage besitzt diese Eigenschaften:
Eigenschaft | Datentyp | Beschreibung |
---|---|---|
Description | String | Wenn der Feed als HTML gerendert wird, soll diese Zeichenfolge zum Titel-Attribut des um das Bild herum gerenderten Links werden. |
Height | Integer | Die Höhe des Bildes. Die maximale Höhe beträgt 400 Pixel. Der Standardwert ist 31 Pixel. |
Width | Integer | Die Breite des Bildes. Die maximale Breite beträgt 144 Pixel. Der Standardwert ist 88 Pixel. |
Link | String | Die URL der Website, zu der der Feed gehört. Wenn der Feed als HTML gerendert wird, wird das RssImage zu einem Link zu dieser Website. |
Title | String | Ein Bildtitel. Er ist als alt-Attribut des HTML-Tags zu verwenden, wenn der Feed als HTML gerendert wird. |
Url | String | Die URL der Bilddatei. Die Spezifikation verlangt, dass es sich um eine GIF-, JPEG- oder PNG-Datei handeln muss. |
Tabelle 24.12.0.8 : Eigenschaften der Klasse RssImage
Das sind die Eigenschaften der Klasse RssItem:
Eigenschaft | Datentyp | Beschreibung |
---|---|---|
Author | String | EMail-Adresse des Autors. |
Categories | RssCategory[ ] | Ein Array von Kategorien für diesen Eintrag. |
Comments | String | Eine URL, die auf eine Kommentarseite für diesen Eintrag verweist. |
Description | String | Zusammenfassung des Artikels. Sie können auch HTML verwenden. |
Enclosure | RssEnclosure | Beschreibt einen Medienanhang zu diesem Eintrag. |
Guid | RssGuid | Ein weltweit eindeutiger Bezeichner für diesen Artikel, zum Beispiel ein Permalink zum vollständigen Inhalt des Artikels auf Ihrer Website. |
Link | String | Ein Link zu der Website, die den vollständigen Inhalt enthält. |
Pub | RssDate | Veröffentlichungsdatum/Zeitzone des Artikels. Wenn diese Option nicht gesetzt ist, wird standardmäßig die Zeit verwendet, zu der das XML-Dokument in der lokalen Zeitzone geschrieben wurde. |
Source | RssSource | Verwenden Sie diese Eigenschaft, wenn ein Eintrag von einem anderen RSS-Feed stammt, um so auf den ursprünglichen Feed zu verlinken. |
Title | String | Der Titel des Eintrags. |
Tabelle 24.12.0.9 : Eigenschaften der Klasse RssItem
Das sind die zwei Eigenschaften der Klasse RssSource:
Eigenschaft | Datentyp | Beschreibung |
---|---|---|
Source | String | Der Feed-Titel des RSS-Feeds der angegebenen Quelle. |
Url | String | Link zum XML-Dokument des externen RSS-Feeds. |
Die Klasse beschreibt ein Texteingabefeld, das optional mit dem Feed angezeigt werden kann und so eine Kommentarfunktion realisiert. Die Spezifikation sieht vor, dass RSS-Generatoren es dem Erzeuger eines RSS-Dokuments erlauben, Texteingabefelder und ein korrespondierendes CGI-Skript auf der Domain anzulegen. Ein Leser des RSS-Feeds kann somit – wenn sein RSS-Feed-Client es unterstützt – einen Text direkt aus der Darstellung des Feeds heraus an den Erzeuger senden.
Die Klasse verfügt über diese Eigenschaften:
Eigenschaft | Datentyp | Beschreibung |
---|---|---|
Description | String | Erläuterung des Zwecks des Eingabefeldes. |
Link | String | Link zu dem CGI-Skript, das die Eingabe verarbeitet. |
Name | String | Name des Eingabefeldes, zur Verwendung durch das CGI-Skript, an das die Eingabe gesendet wird. |
Title | String | Die Beschriftung der Submit-Schaltfläche neben dem Eingabefeld. |
Tabelle 24.12.0.11 : Eigenschaften der Klasse RssTextInput