[X] Das Thema RSS Feed!



  • sclearscreen schrieb:

    umcasen habs geändert in casten

    "umcasen" ist in der letzten korrigierten Fassung gar nicht mehr drin! Wo willst du diesen Fehler gefunden haben?

    sclearscreen schrieb:

    Der Menüpunkt Konfiguration erlaubt das der RSS Feed
    ...
    Und um es kurz und knackig zu halten sollte soetwas selbstverständlich nicht passieren. Trotzdem sollte
    der Beitrag auch etwas über den Tellerrand schauen, siehe die Interoperabilität in der natürlich viel mehr steckt.

    - Komma nach erlaubt fehlt -> war bereits korrigiert
    - das statt dass -> war bereits korrigiert
    - "so etwas" zusammen geschrieben -> war bereits korrigiert
    - Komma nach halten fehlt -> war bereits korrigiert
    - Komma nach Interoperabilität fehlt -> war bereits korrigiert

    Irgendwie schaffst du es immer wieder, bereits erfolgte Korrekturen rückgängig zu machen. Oder du nimmst immer noch nicht die aktuellste Version.

    Bitte trage die angemerkten Korrekturen nicht in deinem Text nach - denn das sind vermutlich nicht alle Fehler, die du wieder reingebracht hast, nur die, die ich auf die Schnelle gefunden habe - sondern nimm die letzte korrigierte Fassung (also eine, die nicht von dir ist), und mach damit deine Änderungen.

    Oder wir werfen die bisherige Korrekturarbeit weg, und lassen dich an deinem Text feilen, bis du meinst, dass er inhaltlich fertig ist, dann machen wir die ganze Korrekturarbeit nochmal, und du darfst nicht mehr dran.

    So wird das doch nichts 😞



  • MFK schrieb:

    Oder wir werfen die bisherige Korrekturarbeit weg, und lassen dich an deinem Text feilen, bis du meinst, dass er inhaltlich fertig ist, dann machen wir die ganze Korrekturarbeit nochmal, und du darfst nicht mehr dran.

    So ist es eh offiziell gedacht, laut estratus Regeln.



  • Artchi schrieb:

    MFK schrieb:

    Oder wir werfen die bisherige Korrekturarbeit weg, und lassen dich an deinem Text feilen, bis du meinst, dass er inhaltlich fertig ist, dann machen wir die ganze Korrekturarbeit nochmal, und du darfst nicht mehr dran.

    So ist es eh offiziell gedacht, laut estratus Regeln.

    Okay das hört sich gut an und ich dachte schon ich muss die [kor]-Tags
    und anderen Markierungen zur Korrektur selbst rausnehmen. Es ist natürlich eine Gefahr das wieder Fehler reinkommen.

    @MFK ich hatte wirklich Predators-Korrekturversion von Seite 7
    so wie Du schon sagtest sollte ich die nehmen.

    @estartu_de und @Artchi
    Also ich möchte dem Text nichts mehr hinzufügen. Ist die Korrektur beendet wäre es schön wenn ein Moderator dann sagt: "Von unserer Seite ist die Korrektur fertig Wir warten nur auf das GO vom Autor". :xmas1:

    Mit freundlichem Gruss 🙂

    P.S.: Ich möchte stylistisch nichts mehr daran ändern und ich habe weiter auch nichts hinzuzufügen, von mir aus kann es nach der Korrektur sofort raus.
    Wäre wirklich vol und ganz besser wenn die Korrektur vom Korrekturteam übernommen wird. Bei grösseren Änderungen die Inhalte verfäschen könnten wäre es dann sinnvoll den Autor zu kontaktieren.
    Das STRG+P und STRG+V von Seiten des Autor während der Korrekturphase ist eine potenzielle Fehlerquelle. Und ein Rechschreibebearbeiter kommt sich sonst betrogen vor, was verständlich sein kann! :xmas2:
    Ich überlasse Euch beim korrigieren meines Beitrag jetzt das Heft
    damit es zu keinen Ungereimtheiten mehr kommt. Schlussendlich sollten die Korrekturbearbeiter bitte bitte dann auch selbst die [kor]-Tags rausnehmen.
    Ich habe Angst hier wieder was falsch zu machen. 😞 🙂
    In dem Sinne wie es Artchi schon sagte. 👍



  • Nimm doch das extra dafür geschriebene Programm 😉
    ➡ http://www.estartu.de/temp/StripTags.exe

    EDIT: Einfach Text mit den kor-Tags in Zwischenablage kopieren, Programm ausführen und Text (jetzt ohne kor-Tags) wieder einfügen



  • @-predator-

    Welche Version auf welcher Seite war die aktuelle korrigierte?
    Immernoch die von Seite 7 also Deine?
    Ja dann mach ich das. 👍



  • Jup, glaube das ist die von Seite 7



  • -predator- schrieb:

    Jup, glaube das ist die von Seite 7

    okay dann mach ich das jetzt so
    also dieses Progamm manipuliert das was mom in der Zwischablage ist und editiert das auch dort, cool!!

    Gut es steht gleich hier.



  • Ich denkemal Beitrag "Zitieren" [quote]-Tags händisch rausmachen?

    Text markieren und per STRG+C in Zwischenablage
    Progamm StripTags.exe starten
    markierten Text per STRG+P
    drüberkopieren

    und abschicken :xmas1:



  • Grundkonzept zur Entwicklung eines RSS-Feed-Readers unter Verwendung von .NET 1.1

    Autor: sclearscreen

    Entwicklungsplattform: Windows XP

    IDE: Visual Studio 2003

    Vorwort

    Ich bin registrierter Nutzer des Forums http://www.c-plusplus.net und ich bin absolut überzeugt von der dahinter liegenden Idee solcher Foren.
    Eines schönen Abends auf einem Besuch entdeckte ich ein Problemposting eines Unregistrierten in der Richtung „Wie kann ich ein RSS-Feed anzeigen“. Nun ich konnte ihm leider nicht helfen, weil ich der Meinung bin, man sollte darüber Ahnung haben, bevor man seinen Senf dazugibt. Zu diesem Zeitpunkt beschäftigte ich mich auch mit einer neuen Entwicklungsumgebung/Framework.
    Hinzu kommt noch, dass ich zu diesem Zeitpunkt in einer Weiterbildung war, die sich eben mit dieser Entwicklungsumgebung beschäftigt.
    Ich dachte nur: „Wie passend! Mal sehen, wie schnell man sich in diese Webtechnik einarbeiten kann.“ Ich wollte das dann auch gleich mit dem Inhalt meiner Weiterbildung verknüpfen.
    Nur so viel schon im Voraus: Die Mühe und die gewonnene Erfahrung im Umgang mit der schönen IDE waren es echt wert. Über Lösungen, die ich selbst geschafft habe, kann ich mich immer freuen wie ein Schneekönig. Zudem kann man sehr viel Motivation für Kommendes rausholen.

    Ein Dozent in meiner Weiterbildung sagte mal zu mir, .NET in Verbindung mit der Microsoft IDE mache ihn süchtig. Ja, in diesem Fall trifft das auch für mich zu - ich weiß jetzt von zwei Abhängigen.
    Diese selbstgestellte Aufgabe war sehr reizvoll in Verbindung mit .NET.

    1. Nur für den Leser, der sich unter RSS-Feed noch nichts vorstellen kann

    RSS-Feed ist eine weitere Möglichkeit, Informationen zu irgendwelchen Themen, die im Internet/Intranet gehostet werden, schnell zusammenzufassen. Der Nutzer solcher RSS-Feeds benutzt so genannte RSS-Feed-Readerapplikationen, um sich einen schnellen Überblick über neue Informationen zu verschaffen.
    Mögliches Szenario wäre: Man hat eine Lieblingswebseite, die ein RSS-Feed beinhaltet.
    Da hat man sich nun endlich einen RSS-Feed-Reader auf seinem Rechner installiert und bevor man auf die Seite surft, holt man sich erstmal einen schnellen Themenüberblick über seine Lieblingswebseite, ob es Neuigkeiten gibt. Denn viele Webseiten haben auch viele sinnfreie Informationen, die einen nicht interessieren.

    Es ist eine Tatsache, dass RSS-Feed ein Dateiformat ist! Hierbei wird XML angewandt und XML kann dabei auch seine Stärken voll zur Entfaltung bringen. Lesern, die sich schon näher mit XML beschäftigt haben, ist zu sagen, dass diese XML-Dokumente (RSS-Feeds) datenzentriert aufbereitet sind. D. h., diese Daten sind auch sehr geeignet für das Arbeiten in Verbindung mit Datenbanken und dergleichen.

    Wem schon mal folgende Symbole auf Webseiten untergekommen sind



    hatte also schon Berührung mit einem oder mehreren RSS-Feeds. Diese Symbole/Grafiken kennzeichnen auf einer Webseite Links auf die Datei, die die Informationen des RSS-Feeds enthält. Strukturiert ist die Information dort dann eben mit XML. Man macht auf diese Links einen Linksklick/Rechtsklick und erhält in jedem Fall eine URL, die man in seinen RSS-Feed-Reader einspeist. Dadurch wird diese Applikation in die Lage versetzt, mittels HTTP oder anderweitigem das XML–Dokument aus dem Netz zu ziehen. Der Reader kann dann das XML–Dokument parsen.

    2. Technische Spezifikationen und Versionen von RSS-Feed

    Wie gesagt, mein Beitrag soll das Grundkonzept sowie das Rüstzeug liefern, damit ein Programmierer/Entwickler einen RSS-Feed–Reader mittels des .NET–Frameworks entwickeln kann. Deshalb sollte man sich die folgenden Links ruhig einmal zu Gemüte führen. Schließlich findet man dort das nötige Wissen, durch welche Elementtags RSS-Feeds strukturiert sind, was wiederum wichtig ist, wenn man Informationen in XML–Dokumenten suchen will!
    Hier also erstmal die besagten Internetlinks:

    http://www.xml.com/pub/a/2002/12/18/dive-into-xml.html
    http://www.uatsap.com/de/rss/manual/3
    http://blogs.law.harvard.edu/tech/rss
    http://www.microsoft.com/germany/msdn/library/data/xml/EntwickelnEinesNewsAggregatorsFuerDesktops.mspx
    http://msdn.microsoft.com/coding4fun/xmlforfun/simplerss/default.aspx?print=true

    Im Kern ergibt sich daraus, dass diese Webdienste in verschiedene Versionen im Netz laufen.

    Version 0.91
    Version 1.0
    Version 2.0

    Man sollte jetzt ruhig einmal googeln, um Webseiten mit solchen Diensten zu finden (siehe die markanten orangefarbenen Symbole). Und man sollte sich dabei auch gleich mal die Zeit nehmen, um das XML–Skript dieser RSS-Feeds
    zu lesen. Bringt man nun obige Links, die sich mit der Spezifikation von RSS beschäftigen, in Zusammenhang mit konkreten RSS-Feeds, erkennt man schnell, dass einige XML–Elementtags optional sind und andere immer auftauchen!
    Genau die Tags, die in allen Versionen von RSS vorkommen (gemeint sind nicht die optionalen), sollte ein RSS-Feed–Reader auch aus einem Webdokument rausparsen können. In Zukunft ist natürlich zu erwarten, dass es nicht bei den paar Versionen bleiben wird. Aber das ist man ja von der IT–Branche gewohnt. Ein RSS-Feed (Webdokument) ist mittels XML–Tags strukturiert. Im folgenden Abschnitt gehe ich anhand der vorliegenden Versionsspezifikationen darauf ein, welche Elemente die absolut notwendigen Elementtags sind.

    3. Die Grundelemente des RSS-Feed
    3.1 Das Grundgerüst des XML-Skriptes

    <rss ...>
    <channel>
    .
    .
    .
    </channel>
    </rss>
    *

    Das Wurzelelement heißt rss, wobei das auch attributiert sein kann z.B. RSS–Versions.
    Wer so manches über XML gelesen hat, wird vielleicht auch wissen, dass man in XML auch mit Namensräumen arbeiten kann, ähnlich wie der Scope–Operator in C/C++.
    Es könnte nun Folgendes auftauchen (siehe doppelter Doppelpunkt):

    <rss::name ...>
    <channel::name ...>

    </channel::name>
    </rss::name>
    *

    3.2 Die wichtigen Tagelemente zwischen dem Channel–Tag

    <item>
    <title>...</title>
    <link>...</link>
    <description>...</description>
    </item>
    *

    Diese Tags innerhalb des Channel–Elements sind unbedingt erforderlich. Pro Information, die der RSS-Feed verwaltet, wiederholt sich das Element item. Es sollte auch einleuchtend sein, dass diese Elemente attributiert sein können und dass auch Namensräume wiederum zum Einsatz kommen können. Wenn jemandem nicht klar ist, was mit Attributierung und Namensräumen bei XML gemeint ist, der sollte sich noch einmal mit XML beschäftigen.
    Zu der gerade vorangegangenen Bemerkung sei hierzu auf diesen Link verwiesen http://de.selfhtml.org/
    Bleibt also nur noch, wie unser RSS-Feed-Reader arbeiten sollte. Die Tagnamen sind selbst erklärend genug, denke ich.

    4. Die angestrebte Arbeitsweise des Feed-Readers
    4. 1 Die Grundfunktionalität

    Man muss die URL zum RSS-Feed erfassen können.
    Man setzt HTTP ein, um den Zugriff auf das Webdokument (RSS-Feed) zu erlangen.
    Man lädt sich die Daten per HTTP lokal auf seinen Rechner.
    Man muss die Daten (im XML–Skript) parsen.
    Man stellt die geparsten Daten geeignet dar.

    4.2 Unterstützende Klassen des .NET–Frameworks für die Problemstellung

    TextBox–Klasse oder Ähnliches zum Erfassen der URL auf das RSS-Feed
    HttpWebRequest–Klasse, um per HTTP eine Verbindung zum Webdokument (RSS-Feed) zu erhalten
    HttpWepResponse–Klasse ist eng in Verbindung mit der HttpWebRequest–Klasse zu sehen, da diese
    Klasse eine Instanz vom Typ HttpWebResponse erzeugt. Zudem beinhaltet diese Instanz das Webdokument. Wir können es somit lokal verwerten. Diese Instanz erzeugt nun wiederum ein Stream–Objekt, was man einem XmlTextReader–Objekt zuführen kann.
    Mit der XmlTextReader–Klasse lässt sich das gewonnene XML–Dokument eben auf die Elemente parsen, die ich unter den Punkten 3.1 und 3.2 angesprochen habe.

    Wenn man ganz von Hand parsen möchte, gibt es im .NET–Namensraum System.Text.Regularexpressions auch die sehr nützliche Klasse Regex. Dazu sollte man das Webdokument, was im HttpWebResponse–Objekt steckt, in eine Variable vom Typ String bringen. In der MSDN.microsoft.com stehen schöne Beispiele, wie man die Regex–Klasse einsetzen kann. Einen Link will ich natürlich nicht vorenthalten:

    http://search.microsoft.com/search/results.aspx?qu=Regex&View=msdn&st=b&c=0&s=1&swc=0

    4.3 Interoperabilität oder Browserautomation - ein anderer nützlicher Ansatzpunkt

    Die Grafik zeigt, dass man in seinem .NET–Projekt Verweise aufnehmen muss, zwei an der Zahl, wenn man diese
    interessante Technik auch benutzen will.

    SHDOCVW.dll hat intern eine Klasse SHDocVw.InternetExplorer zur bidirektionalen Verbindung zwischen Browser und unserer Anwendung.
    mshtml.tlb bietet eine unterstützende Klasse zur Konvertierung einer Information, die in einer Instanz von SHDocVw.InternetExplorer vorliegt.

    Nur so viel: Mit einer Instanz SHDocVw.InternetExplorer haben wir einen direkten Draht zu unserem Internet Explorer.
    Wenn dieser eine Seite fertig geladen hat, liegt in deren öffentlichen Member Document die Webseite lokal vor.
    Man muss diesen Member in ein Objekt des Typs mshtml.HTMLDocumentClass umcasten, um es konkret verwertbar zu machen. Diesen Typ hat man nur, wenn man den zweiten Verweis in seinem Projekt hat (siehe der obige Grafik).

    Um mehr über Interoperabilität zu erfahren, sollte man einmal http://www.google.de/ benutzen. Folgender Suchbegriff, den man mit Google verwenden sollte, sollte Einiges bringen:

    intext:"SHDocVw.InternetExplorer" + intext:"mshtml.HTMLDocumentClass"

    Codeschnipsel sind da manchmal sehr aufschlussreich. An der Stelle füge ich selbstverständlich auch einen Link ein, der auf einen Beitrag von mir verlinkt:

    http://www.c-plusplus.net/forum/viewtopic-var-t-is-121879-and-highlight-is-sclearscreen-and-sid-is-82c15cfda53c330ff9a092e71203833a.html

    Wie lange der Link aktiv auf meinen Beitrag verweist, hängt natürlich davon ab, wie lange die Webdatenbank des Forums Beiträge speichert. Da der Beitrag aber, denke ich, nicht im .NET-FAQ des Forums(http://www.c-plusplus.net/forum/viewforum-var-f-is-29.html) ist, wird er irgendwann einmal tot sein.
    Aber egal, denn mit Google wird man mit etwas Geschick Ähnliches jederzeit reproduzieren können!

    5 Das GUI meines RSS-Feed–Readers auf Basis der vorangegangenen vier Punkte

    In den vier Punkten sind viel Internetrecherchen und Gedankengänge von mir eingeflossen. Software–Engineering durch UML, PAP und Nassi Schneidermann habe ich bewusst weggelassen. Das Beispielprojekt ist so einfach, dass sich das meines Erachtens nicht gelohnt hätte.

    Der Menüpunkt "Konfiguration" erlaubt, dass der RSS-Feed–Reader auch über einen Proxyserver funktioniert.
    Als Ausgangspunkt für eine Weiterentwicklung sollte das Projekt eine ausreichende Grundlage sein.
    Das Projekt kann man sich natürlich in Form einer gepackten Datei (WinRAR) runterladen.

    http://www.c-plusplus.net/magazin/bilder/RSS/Version1.1a.rar

    Nachwort

    An manchen Stellen bin ich vielleicht vom Hundertsten ins Tausendste gekommen oder vielleicht auch nur fast.
    Und um es kurz und knackig zu halten, sollte so etwas selbstverständlich nicht passieren. Trotzdem sollte
    der Beitrag auch etwas über den Tellerrand lunzen, siehe die Interoperabilität, in der natürlich viel mehr steckt.

    Mit freundlichen Grüßen
    sclearscreen



  • ist ja lange her, lag auch an mir aber der Beitrag vor diesem ist der letzte
    Beitrag bis jetzt. Und mit Eurer Erklärung zu dem Tool StripTags habe ich Eurer Korrektur mit besagtem Tool bearbeiten lassen!

    Von meiner Seite wäre erstmal nichts mehr zum meinem Beitrag zu sagen, von mir aus wäre dieser also fertig.

    mfg sclearscreen



  • sclearscreen schrieb:

    Von meiner Seite wäre erstmal nichts mehr zum meinem Beitrag zu sagen, von mir aus wäre dieser also fertig.

    Wenn er durch die Rechtschreibkorrektur ist, dann IST er fertig.

    Damit ist der Artikel als fertig gekennzeichnet und ich muss nur noch den mit dem E ins Artikelforum schieben, wenn es so weit ist.

    Alles klar?
    Steht übrigens auch in der Anleitung. (Falls da was unverständlich ist, dann FRAG - sonst kann ich das nicht korrigieren.)



  • Grundkonzept zur Entwicklung eines RSS-Feed-Readers unter Verwendung von .NET 1.1

    Autor: sclearscreen

    Entwicklungsplattform: Windows XP

    IDE: Visual Studio 2003

    Vorwort

    Ich bin registrierter Nutzer des Forums http://www.c-plusplus.net und ich bin absolut überzeugt von der dahinter liegenden Idee solcher Foren.
    Eines schönen Abends auf einem Besuch entdeckte ich ein Problemposting eines Unregistrierten in der Richtung „Wie kann ich ein RSS-Feed anzeigen“. Nun ich konnte ihm leider nicht helfen, weil ich der Meinung bin, man sollte darüber Ahnung haben, bevor man seinen Senf dazugibt. Zu diesem Zeitpunkt beschäftigte ich mich auch mit einer neuen Entwicklungsumgebung/Framework.
    Hinzu kommt noch, dass ich zu diesem Zeitpunkt in einer Weiterbildung war, die sich eben mit dieser Entwicklungsumgebung beschäftigt.
    Ich dachte nur: „Wie passend! Mal sehen, wie schnell man sich in diese Webtechnik einarbeiten kann.“ Ich wollte das dann auch gleich mit dem Inhalt meiner Weiterbildung verknüpfen.
    Nur so viel schon im Voraus: Die Mühe und die gewonnene Erfahrung im Umgang mit der schönen IDE waren es echt wert. Über Lösungen, die ich selbst geschafft habe, kann ich mich immer freuen wie ein Schneekönig. Zudem kann man sehr viel Motivation für Kommendes rausholen.

    Ein Dozent in meiner Weiterbildung sagte mal zu mir, .NET in Verbindung mit der Microsoft IDE mache ihn süchtig. Ja, in diesem Fall trifft das auch für mich zu - ich weiß jetzt von zwei Abhängigen.
    Diese selbstgestellte Aufgabe war sehr reizvoll in Verbindung mit .NET.

    1. Nur für den Leser, der sich unter RSS-Feed noch nichts vorstellen kann

    RSS-Feed ist eine weitere Möglichkeit, Informationen zu irgendwelchen Themen, die im Internet/Intranet gehostet werden, schnell zusammenzufassen. Der Nutzer solcher RSS-Feeds benutzt so genannte RSS-Feed-Readerapplikationen, um sich einen schnellen Überblick über neue Informationen zu verschaffen.
    Mögliches Szenario wäre: Man hat eine Lieblingswebseite, die ein RSS-Feed beinhaltet.
    Da hat man sich nun endlich einen RSS-Feed-Reader auf seinem Rechner installiert und bevor man auf die Seite surft, holt man sich erstmal einen schnellen Themenüberblick über seine Lieblingswebseite, ob es Neuigkeiten gibt. Denn viele Webseiten haben auch viele sinnfreie Informationen, die einen nicht interessieren.

    Es ist eine Tatsache, dass RSS-Feed ein Dateiformat ist! Hierbei wird XML angewandt und XML kann dabei auch seine Stärken voll zur Entfaltung bringen. Lesern, die sich schon näher mit XML beschäftigt haben, ist zu sagen, dass diese XML-Dokumente (RSS-Feeds) datenzentriert aufbereitet sind. D. h., diese Daten sind auch sehr geeignet für das Arbeiten in Verbindung mit Datenbanken und dergleichen.

    Wem schon mal folgende Symbole auf Webseiten untergekommen sind



    hatte also schon Berührung mit einem oder mehreren RSS-Feeds. Diese Symbole/Grafiken kennzeichnen auf einer Webseite Links auf die Datei, die die Informationen des RSS-Feeds enthält. Strukturiert ist die Information dort dann eben mit XML. Man macht auf diese Links einen Linksklick/Rechtsklick und erhält in jedem Fall eine URL, die man in seinen RSS-Feed-Reader einspeist. Dadurch wird diese Applikation in die Lage versetzt, mittels HTTP oder anderweitigem das XML–Dokument aus dem Netz zu ziehen. Der Reader kann dann das XML–Dokument parsen.

    2. Technische Spezifikationen und Versionen von RSS-Feed

    Wie gesagt, mein Beitrag soll das Grundkonzept sowie das Rüstzeug liefern, damit ein Programmierer/Entwickler einen RSS-Feed–Reader mittels des .NET–Frameworks entwickeln kann. Deshalb sollte man sich die folgenden Links ruhig einmal zu Gemüte führen. Schließlich findet man dort das nötige Wissen, durch welche Elementtags RSS-Feeds strukturiert sind, was wiederum wichtig ist, wenn man Informationen in XML–Dokumenten suchen will!
    Hier also erstmal die besagten Internetlinks:

    http://www.xml.com/pub/a/2002/12/18/dive-into-xml.html
    http://www.uatsap.com/de/rss/manual/3
    http://blogs.law.harvard.edu/tech/rss
    http://www.microsoft.com/germany/msdn/library/data/xml/EntwickelnEinesNewsAggregatorsFuerDesktops.mspx
    http://msdn.microsoft.com/coding4fun/xmlforfun/simplerss/default.aspx?print=true

    Im Kern ergibt sich daraus, dass diese Webdienste in verschiedene Versionen im Netz laufen.

    Version 0.91
    Version 1.0
    Version 2.0

    Man sollte jetzt ruhig einmal googeln, um Webseiten mit solchen Diensten zu finden (siehe die markanten orangefarbenen Symbole). Und man sollte sich dabei auch gleich mal die Zeit nehmen, um das XML–Skript dieser RSS-Feeds
    zu lesen. Bringt man nun obige Links, die sich mit der Spezifikation von RSS beschäftigen, in Zusammenhang mit konkreten RSS-Feeds, erkennt man schnell, dass einige XML–Elementtags optional sind und andere immer auftauchen!
    Genau die Tags, die in allen Versionen von RSS vorkommen (gemeint sind nicht die optionalen), sollte ein RSS-Feed–Reader auch aus einem Webdokument rausparsen können. In Zukunft ist natürlich zu erwarten, dass es nicht bei den paar Versionen bleiben wird. Aber das ist man ja von der IT–Branche gewohnt. Ein RSS-Feed (Webdokument) ist mittels XML–Tags strukturiert. Im folgenden Abschnitt gehe ich anhand der vorliegenden Versionsspezifikationen darauf ein, welche Elemente die absolut notwendigen Elementtags sind.

    3. Die Grundelemente des RSS-Feed
    3.1 Das Grundgerüst des XML-Skriptes

    <rss ...>
    <channel>
    .
    .
    .
    </channel>
    </rss>
    *

    Das Wurzelelement heißt rss, wobei das auch attributiert sein kann z.B. RSS–Versions.
    Wer so manches über XML gelesen hat, wird vielleicht auch wissen, dass man in XML auch mit Namensräumen arbeiten kann, ähnlich wie der Scope–Operator in C/C++.
    Es könnte nun Folgendes auftauchen (siehe doppelter Doppelpunkt):

    <rss::name ...>
    <channel::name ...>

    </channel::name>
    </rss::name>
    *

    3.2 Die wichtigen Tagelemente zwischen dem Channel–Tag

    <item>
    <title>...</title>
    <link>...</link>
    <description>...</description>
    </item>
    *

    Diese Tags innerhalb des Channel–Elements sind unbedingt erforderlich. Pro Information, die der RSS-Feed verwaltet, wiederholt sich das Element item. Es sollte auch einleuchtend sein, dass diese Elemente attributiert sein können und dass auch Namensräume wiederum zum Einsatz kommen können. Wenn jemandem nicht klar ist, was mit Attributierung und Namensräumen bei XML gemeint ist, der sollte sich noch einmal mit XML beschäftigen.
    Zu der gerade vorangegangenen Bemerkung sei hierzu auf diesen Link verwiesen http://de.selfhtml.org/
    Bleibt also nur noch, wie unser RSS-Feed-Reader arbeiten sollte. Die Tagnamen sind selbst erklärend genug, denke ich.

    4. Die angestrebte Arbeitsweise des Feed-Readers
    4. 1 Die Grundfunktionalität

    Man muss die URL zum RSS-Feed erfassen können.
    Man setzt HTTP ein, um den Zugriff auf das Webdokument (RSS-Feed) zu erlangen.
    Man lädt sich die Daten per HTTP lokal auf seinen Rechner.
    Man muss die Daten (im XML–Skript) parsen.
    Man stellt die geparsten Daten geeignet dar.

    4.2 Unterstützende Klassen des .NET–Frameworks für die Problemstellung

    TextBox–Klasse oder Ähnliches zum Erfassen der URL auf das RSS-Feed
    HttpWebRequest–Klasse, um per HTTP eine Verbindung zum Webdokument (RSS-Feed) zu erhalten
    HttpWepResponse–Klasse ist eng in Verbindung mit der HttpWebRequest–Klasse zu sehen, da diese
    Klasse eine Instanz vom Typ HttpWebResponse erzeugt. Zudem beinhaltet diese Instanz das Webdokument. Wir können es somit lokal verwerten. Diese Instanz erzeugt nun wiederum ein Stream–Objekt, was man einem XmlTextReader–Objekt zuführen kann.
    Mit der XmlTextReader–Klasse lässt sich das gewonnene XML–Dokument eben auf die Elemente parsen, die ich unter den Punkten 3.1 und 3.2 angesprochen habe.

    Wenn man ganz von Hand parsen möchte, gibt es im .NET–Namensraum System.Text.Regularexpressions auch die sehr nützliche Klasse Regex. Dazu sollte man das Webdokument, was im HttpWebResponse–Objekt steckt, in eine Variable vom Typ String bringen. In der MSDN.microsoft.com stehen schöne Beispiele, wie man die Regex–Klasse einsetzen kann. Einen Link will ich natürlich nicht vorenthalten:

    http://search.microsoft.com/search/results.aspx?qu=Regex&View=msdn&st=b&c=0&s=1&swc=0

    4.3 Interoperabilität oder Browserautomation - ein anderer nützlicher Ansatzpunkt

    Die Grafik zeigt, dass man in seinem .NET–Projekt Verweise aufnehmen muss, zwei an der Zahl, wenn man diese
    interessante Technik auch benutzen will.

    SHDOCVW.dll hat intern eine Klasse SHDocVw.InternetExplorer zur bidirektionalen Verbindung zwischen Browser und unserer Anwendung.
    mshtml.tlb bietet eine unterstützende Klasse zur Konvertierung einer Information, die in einer Instanz von SHDocVw.InternetExplorer vorliegt.

    Nur so viel: Mit einer Instanz SHDocVw.InternetExplorer haben wir einen direkten Draht zu unserem Internet Explorer.
    Wenn dieser eine Seite fertig geladen hat, liegt in deren öffentlichen Member Document die Webseite lokal vor.
    Man muss diesen Member in ein Objekt des Typs mshtml.HTMLDocumentClass umcasten, um es konkret verwertbar zu machen. Diesen Typ hat man nur, wenn man den zweiten Verweis in seinem Projekt hat (siehe der obige Grafik).

    Um mehr über Interoperabilität zu erfahren, sollte man einmal http://www.google.de/ benutzen. Folgender Suchbegriff, den man mit Google verwenden sollte, sollte Einiges bringen:

    intext:"SHDocVw.InternetExplorer" + intext:"mshtml.HTMLDocumentClass"

    Codeschnipsel sind da manchmal sehr aufschlussreich. An der Stelle füge ich selbstverständlich auch einen Link ein, der auf einen Beitrag von mir verlinkt:

    http://www.c-plusplus.net/forum/viewtopic-var-t-is-121879-and-highlight-is-sclearscreen-and-sid-is-82c15cfda53c330ff9a092e71203833a.html

    Wie lange der Link aktiv auf meinen Beitrag verweist, hängt natürlich davon ab, wie lange die Webdatenbank des Forums Beiträge speichert. Da der Beitrag aber, denke ich, nicht im .NET-FAQ des Forums(http://www.c-plusplus.net/forum/viewforum-var-f-is-29.html) ist, wird er irgendwann einmal tot sein.
    Aber egal, denn mit Google wird man mit etwas Geschick Ähnliches jederzeit reproduzieren können!

    5 Das GUI meines RSS-Feed–Readers auf Basis der vorangegangenen vier Punkte

    In den vier Punkten sind viel Internetrecherchen und Gedankengänge von mir eingeflossen. Software–Engineering durch UML, PAP und Nassi Schneidermann habe ich bewusst weggelassen. Das Beispielprojekt ist so einfach, dass sich das meines Erachtens nicht gelohnt hätte.

    Der Menüpunkt "Konfiguration" erlaubt, dass der RSS-Feed–Reader auch über einen Proxyserver funktioniert.
    Als Ausgangspunkt für eine Weiterentwicklung sollte das Projekt eine ausreichende Grundlage sein.
    Das Projekt kann man sich natürlich in Form einer gepackten Datei (WinRAR) runterladen.

    http://www.c-plusplus.net/magazin/bilder/RSS/Version1.1a.rar

    Ich übernehme keine Haftung für entstandene Schäden an Hardware/Software, die durch den Download, Verwendung oder Änderung am Quellcode entstanden sein könnten!

    Nachwort

    An manchen Stellen bin ich vielleicht vom Hundertsten ins Tausendste gekommen oder vielleicht auch nur fast.
    Und um es kurz und knackig zu halten, sollte so etwas selbstverständlich nicht passieren. Trotzdem sollte
    der Beitrag auch etwas über den Tellerrand lunzen, siehe die Interoperabilität, in der natürlich viel mehr steckt.

    Mit freundlichen Grüßen
    sclearscreen


Anmelden zum Antworten