Benutzer-Werkzeuge

Webseiten-Werkzeuge


Seitenleiste

Kommunikation und Netzwerk

k24:k24.12:start

24.12.0 Komponente WebFeed (gb.web.feed)

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.

  • Das Lesen eines RSS-Feeds erfolgt so, dass Sie ein RSS-Objekt erzeugen, mit Inhalt füllen und es dann nach den Inhalten parsen, die Sie auslesen wollen. In einem weiteren Schritt werden die in einem geeigneten Format gespeicherten RSS-Feed-Daten dann angezeigt.
  • RSS-Dateien schreiben Sie über eine objektorientierte Schnittstelle, indem Sie ein RSS-Objekt erzeugen, diesem Kanal-Objekte (Channels) zuweisen und in denen wiederum Eintrag-Objekte (Items) erzeugen und mit Daten befüllen. Das Ergebnis ist ein XML-Dokument.

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>

24.12.0.1 Klasse 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.

  • Sie können die Klasse Rss verwenden, um entweder den Inhalt eines RSS-Dokumentes auszulesen oder um ein RSS-Dokument zu erzeugen.
  • Ein Objekt der Klasse Rss können Sie erzeugen – wie bei allen anderen Klassen der Komponente WebFeed auch.

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
  • Auf die Frage, was die vielen Klassen der Komponente gb.web.feed leisten, gilt übergreifend:
  • Jede Klasse bildet jeweils einen spezifischen Teil eines RSS-Dokuments als Objekt ab. Was das konkret besagt, steht in der oben erwähnten Spezifikation von RSS.
  • Die WebFeed-Komponente implementiert ein so genanntes Dokument-Objekt-Modell. Das bedeutet einerseits, dass das Dokument geparst wird und die einzelnen Bestandteile als Gambas-Objekte manipuliert werden können.
  • Oder Sie erzeugen einen Baum von Gambas-Objekten mit Hilfe der RSS-Klassen und schreiben daraus ein gültiges RSS-XML-Dokument. Fügen Sie dazu Ihre Elemente der Reihe nach hinzu. Der Einsatz der drei Eigenschaften Titel, Link und Beschreibung der Klasse Rss ist zwingend erforderlich, um ein RSS-Dokument zu erzeugen. Alle anderen Eigenschaften sind optional. Rufen Sie dann die Methode ToString() auf, um den XML-Dokument-String zu erhalten.

Die Klasse Rss verfügt über diese Eigenschaften:

EigenschaftDatentypBeschreibung
TitleStringDer Name oder Titel des Feeds.
LinkStringDie URL zu der Website, die diesem Feed entspricht.
DescriptionStringLiefert eine Beschreibung des Inhalts des Feeds.
CategoriesRssCategory[]Repräsentiert ein Array von Kategorien für diesen Feed.
CloudRssCloudLiefert die Beschreibung eines zugehörigen Cloud-Services.
CopyrightStringCopyright-Hinweis für den Inhalt des Feeds.
CountIntegerGibt die Anzahl der RssItems im RSS-Dokument zurück.
DocsStringGibt einen Link zur RSS-Spezifikation zurück, um darüber zu informieren, was eine RSS-Datei ist, falls die Dokumentation existiert.
GeneratorStringNennt das Programm, mit dem der Feed erzeugt wurde.
ImageRssImageLiefert ein zum Feed gehörendes Bild.
LanguageStringDie Sprache, in der der Inhalt des Feeds geschrieben ist. Verwenden Sie einen nach https://cyber.harvard.edu/rss/languages.html definierten Werte !
LastBuildRssDateDas 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.
ManagingEditorStringEMail-Adresse des leitenden (Feed-)Redakteurs.
PubRssDateVerö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.
RatingStringPICS-Bewertung des Feeds – falls diese existiert.
SkipDaysInteger[ ]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.
SkipHoursInteger[ ]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.
TextInputRssTextInputBeschreibt ein Texteingabefeld, das mit dem Feed angezeigt werden soll.
TTLInteger'Time To Live' gibt an, wie lange der Inhalt des Feeds zwischengespeichert werden darf. Die Einheit von TTL sind Minuten.
WebMasterStringEMail-Adresse des Webmasters.

Tabelle 24.12.0.1 : Eigenschaften der Klasse Rss

24.12.0.2 Methoden

Die Klasse Rss verfügt über diese Methoden:

MethodeRückgabetypBeschreibung
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 ( )StringKonvertiert 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

24.12.0.3 Klasse RssCategory

Eigenschaften der Klasse:

EigenschaftDatentypBeschreibung
CategoryStringDie Zeichenkette beschreibt die Kategorie. Verwenden Sie Schrägstriche als Trennzeichen, um Kategorien hierarchisch zu strukturieren.
DomainStringDie 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

24.12.0.4 Klasse RssCloud

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:

EigenschaftDatentypBeschreibung
DomainStringDomänenname des Anwendungsservers.
PathStringDer Skript-Pfad auf dem Server.
ProtocolInteger`Protocol` repräsentiert das zu verwendende RSSCloud-Protokoll. Wahlweise XmlRpc, Soap oder HttpPost.
RegisterProcedureStringName des auf der Serverseite aufzurufenden Registrierungsverfahrens.

Tabelle 24.12.0.4 : Eigenschaften der Klasse RssCloud

24.12.0.5 Klasse RssDate

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:

EigenschaftDatentypBeschreibung
DateDateDate ist das von diesem Objekt repräsentierte Datum.
ZoneStringZone 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

24.12.0.6 Klasse RssEnclosure

Die Klasse verfügt über diese drei Eigenschaften:

EigenschaftDatentypBeschreibung
LengthLongDie Länge der angehängten Datei in Bytes.
TypeStringGibt den MIME-Typ der Datei zurück oder legt ihn fest.
UrlStringDie URL der angehängten Datei.

Tabelle 24.12.0.6 : Eigenschaften der Klasse RssEnclosure

24.12.0.7 Klasse RssGuid

GUID steht für 'Globally Unique IDentifier' – als weltweit eindeutigem Bezeichner für einen bestimmten Feed-Item/Artikel. Die Klasse hat diese Eigenschaften:

EigenschaftDatentypBeschreibung
GuidStringGUID-Zeichenkette. Der Wert ist eine URL.
IsPermaLinkBooleanGibt 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

24.12.0.8 Klasse RssImage

Die Klasse RssImage besitzt diese Eigenschaften:

EigenschaftDatentypBeschreibung
DescriptionStringWenn der Feed als HTML gerendert wird, soll diese Zeichenfolge zum Titel-Attribut des um das Bild herum gerenderten Links werden.
HeightIntegerDie Höhe des Bildes. Die maximale Höhe beträgt 400 Pixel. Der Standardwert ist 31 Pixel.
WidthIntegerDie Breite des Bildes. Die maximale Breite beträgt 144 Pixel. Der Standardwert ist 88 Pixel.
LinkStringDie 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 StringEin Bildtitel. Er ist als alt-Attribut des HTML-Tags zu verwenden, wenn der Feed als HTML gerendert wird.
UrlStringDie 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

24.12.0.9 Klasse RssItem

Das sind die Eigenschaften der Klasse RssItem:

EigenschaftDatentypBeschreibung
AuthorStringEMail-Adresse des Autors.
CategoriesRssCategory[ ]Ein Array von Kategorien für diesen Eintrag.
CommentsStringEine URL, die auf eine Kommentarseite für diesen Eintrag verweist.
DescriptionStringZusammenfassung des Artikels. Sie können auch HTML verwenden.
EnclosureRssEnclosureBeschreibt einen Medienanhang zu diesem Eintrag.
GuidRssGuidEin weltweit eindeutiger Bezeichner für diesen Artikel, zum Beispiel ein Permalink zum vollständigen Inhalt des Artikels auf Ihrer Website.
LinkStringEin Link zu der Website, die den vollständigen Inhalt enthält.
PubRssDateVerö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.
SourceRssSourceVerwenden Sie diese Eigenschaft, wenn ein Eintrag von einem anderen RSS-Feed stammt, um so auf den ursprünglichen Feed zu verlinken.
TitleStringDer Titel des Eintrags.

Tabelle 24.12.0.9 : Eigenschaften der Klasse RssItem

24.12.0.10 Klasse RssSource

Das sind die zwei Eigenschaften der Klasse RssSource:

EigenschaftDatentypBeschreibung
SourceStringDer Feed-Titel des RSS-Feeds der angegebenen Quelle.
UrlStringLink zum XML-Dokument des externen RSS-Feeds.

24.12.0.11 Klasse RssTextInput

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:

EigenschaftDatentypBeschreibung
DescriptionStringErläuterung des Zwecks des Eingabefeldes.
LinkStringLink zu dem CGI-Skript, das die Eingabe verarbeitet.
NameStringName des Eingabefeldes, zur Verwendung durch das CGI-Skript, an das die Eingabe gesendet wird.
TitleStringDie Beschriftung der Submit-Schaltfläche neben dem Eingabefeld.

Tabelle 24.12.0.11 : Eigenschaften der Klasse RssTextInput

Download

Die Website verwendet zwei temporäre Session-Cookies. Diese technisch notwendigen Cookies werden gelöscht, wenn der Web-Browser geschlossen wird! Informationen zu Cookies erhalten Sie in der Datenschutzerklärung.
k24/k24.12/start.txt · Zuletzt geändert: 03.12.2020 von honsek

Seiten-Werkzeuge