Marcel: RSS/RDF newsfeed

Hallo zusammen,

ist es möglich, ein RSS/RDF newsfeed per Javascript einzubinden ?

Ich weis es geht mit PHP, aber mein Webspace-Prowider lässt dies nicht zu.
Prowider-Wechsel kommt nicht in Frage, würde aber gerne RSS/RDF newsfeeds benutzen. Wenn´s nicht mit Javascript geht, kennt vieleicht jemand wo ich kostenlos PHP/CGI scripte hosten kann ?

Danke für eure Hilfe.

Gruß Marcel

  1. hi,

    ist es möglich, ein RSS/RDF newsfeed per Javascript einzubinden ?

    was meinst du mit einbinden?

    dir ist klar, dass dies lediglich eine datenquelle ist, wie eine php- oder html-seite auch, und dass diese daten irgendwo erzeugt werden müssen ...?

    gruss,
    wahsaga

    1. was meinst du mit einbinden?

      in meine HTML den Newsfeed anzeigen lassen.

      dir ist klar, dass dies lediglich eine datenquelle ist, wie eine php- oder html-seite auch, und dass diese daten irgendwo erzeugt werden müssen ...?

      Es gibt Webnapping Angebote für News die sie nur der RSS/RDF anbieten. Ich habe PHP Scripte gefunden die die Daten auslesen und anzeigen.

      Ich möchte sie auch in meine HTML Seite anzeigen, eben per Javascript wenn möglich.

      gruß
      Marcel

      1. Hallo Marcel,

        Es gibt Webnapping Angebote für News die sie nur der RSS/RDF anbieten. Ich
        habe PHP Scripte gefunden die die Daten auslesen und anzeigen. Ich möchte
        sie auch in meine HTML Seite anzeigen, eben per Javascript wenn möglich.

        Sag das doch. ;)

        In der Theorie müßte es möglich sein, nur mit solchen Nachteilen behaftet,
        daß es kaum jemand machen dürfte. Bedenke: Javascript läuft im Browser,
        weswegen dann folgender Ablauf des Scripts zu programmieren werden müßte:

        1. Die Seite lädt im Browser.

        2. Das Javascript startet und - ich meine das kann Javascript - lädt sich
           von anderen Adressen die RSS-Feeds in den Speicher. Die Adressen dieser
           Feeds müßten entweder in die Seite vorher reingeschrieben sein, oder
           über ein Eingabefeld dem Script zur Verfügung gestellt werden. Daraus
           folgt der erste wesentliche Nachteil: Es gibt keine Möglichkeit, Feeds
           neu zu »abonnieren« oder »abzubestellen«, außer manuell im Quellcode
           des Scriptes die Änderungen zu machen.

        3. Das Script muß den Datenstrom des Scriptes auswerten (parsen) und in
           eine für sich passende Datenstruktur umwandeln. Beispiel: »Alles, was
           zwischen <item> und </item> steht ist ein Eintrag.« Ich meine, mal über
           XML-Parser für Javascript gestolpert zu sein, dann ginge das noch
           einfacher. Dummerweise gibt es diverse RSS-Standards, die sich von
           einander unterscheiden und es gibt die Möglichkeit der XML-Namensräume,
           d.h. Dein Script müßte auch mit eventuell unbekannten XML-Elementen wie
           dc:date und ähnlichem zurechtkommen.

        4. Aus dieser Datenstrukur muß dann mit document.write der Inhalt der
           diversen RSS-Feeds in HTML-Quelltext in den Seite geschrieben werden.

        Abgesehen von dem ewigen Anti-Javascript-Argument (»Kann ja abgeschaltet
        sein.«) dürfte dieser Aufwand einen eventuellen Programmierer davon
        abschrecken, dieses im im Browser ablaufenden Javascript zu implementieren,
        sondern andere Sprachen zu nehmen, eben serverseitiges über die CGI-Schnittstelle
        im Webserver oder aber gleich GUI-Software zu schreiben.

        Wenn Du nur verschiedene RSS-Feeds lesen willst, würde ich Dir tatsächlich
        nur zu einer diesen Lösungen raten. Diverse RSS-verarbeitende Software
        findest Du unter den auf dieser Seite verlinkten Artikeln:
        http://www.plasticthinking.org/wiki/WasistRSS

        Willst Du dagegen auf Deiner eigenen Seite einen externen RSS-Feed
        einbinden und in HTML darstellen wollen (1), mußt Du wohl entweder in
        Javascript obige Darstellung nachprogrammieren oder Deinen Webspace so
        umrüsten, daß Du serverseitige Scripte laufen lassen kannst. Eventuell
        mußt Du das dann auch noch selbst programmieren, wenn es keine für Dich
        befriedigende Lösung im Netz gibt.

        (1) Achtung: Rechtlich kann dieses recht bedenklich sein, Stichwort
            Urheberrecht und Copyright.

        Tim

        1. Danke Tim,

          die sache werd ich wohl vergessen.

          Hab zwar gerade was interessantes gefunden, das geht leider auch nicht.

          Auf der Site
          http://www.wc.cc.va.us/services/news/default.asp

          kann ich meinen Newsfeed Link:

          http://www.messe1x1.de/fileadmin/messenews/messenews.rdf

          angeben und bekommen eine Javascript einbindung für meine Seite (läuft über deren Server)

          da kommt leider nur eine Fehlermeldung die ich nicht verstehe.

          There is something wrong with our copy of the RSS file for this channel. XML document must have a top level element.
          The source of the problem is: Line: 0
          Line Position: 0
          Reason: XML document must have a top level element.
          Source of the Problem:
          The problem can be debugged here: http://www.wcc.vccs.edu/services/news/preview.asp?c=http://www.messe1x1.de/fileadmin/messenews/messenews.rdf&refresh=true

          Check out the features section for details on customizing the look of your feed. If you're having problems, validate your RSS feed.

          na ja,

          danke noch mal.

          tschau
          Marcel

        2. hi,

          In der Theorie müßte es möglich sein

          nein, ich denke dabei wirst du schon an dieser stelle scheitern:

          1. Das Javascript startet und - ich meine das kann Javascript - lädt sich
               von anderen Adressen die RSS-Feeds in den Speicher.

          "in den speicher" laden kann JS nichts.
          es kann höchstens in einem anderen frame o.ä. die datei aufrufen.
          darauf hast du dann aber wiederrum (bei feeds von anderen domains) keinen zugriff mehr, wegen der cross domain scripting restriktionen.

          gruss,
          wahsaga

          1. Hallo wahsaga,

            "in den speicher" laden kann JS nichts.

            Ähm. Doch. Ich habe zumindest mal ein auf Movable Type basierendes Weblog
            gesehen, daß über Javascript Inhalte von URIs heruntergeladen hat, diesen
            verarbeitet und on-the-fly in die Seite eingebunden hat. Konkret waren
            unter diesen URIs die Kommentare zu einem Eintrag in XML-Form gespeichert
            um dann auf der Hauptseite des Weblogs auf Klick unter dem Eintrag
            eingebunden werden. Nein, es war nicht die Standardtemplates samt Skripts
            von Movable Type, sondern eine eigene Lösung, browserübergreifend.
            Dummerweise habe ich die Seite damals (vor Jahren) nicht gebookmarkt und
            weiß auch nicht mehr wie es konkret gehandhabt worden war, obwohl ich mich
            damals durch den Quellcode gewühlt habe. Ich meine, es handelte sich um
            einen Wrapper, der um die verschiedenen browserspezifischen Methode
            rumgeschrieben war.

            Weswegen ich gerade etwas rumrecherchiert habe. Vor einigen Jahren war
            dies anscheinend aktuell:

            • Für Netscape war es LiveConnect, diese Brücke zwischen Javascript und
                Java. Damit kann man in Javascript auf Java-Objekte zugreifen, so auch
                auf die diversen Dinge unter java.io.*, so das man auch externe Ressourcen
                als Datenstrom verarbeiten kann.
            • Für den Internet Explorer gibt es anscheinend diverse Möglichkeiten mit
                ActiveX, die uns hier nicht weiter interessieren. ;-)
              Siehe auch: http://www.evolt.org/article/Text_Dateien_laden_mit_JavaScript/20/17537/index.html

            Jetzt mehr oder weniger aktuell scheint wie Variante mit einem Objekt namens
            XMLHTTPRequest zu geben.

            • Beim Internet Explorer scheint es wieder eine ActiveX-Komponente zu sein.
                Leider.
            • Auf der Netscape/Mozilla-Seite wird dieses Objekt nun nachimplementiert
                und kann ähnlich genutzt werden. (Siehe auch http://www.mozilla.org/xmlextras/)
              Es ist nun relativ einfach, eine Funktion darum zu schreiben. Ein Beispiel
              dafür findest Du hier:
              http://jibbering.com/2002/4/httprequest.html

            Natürlich ist das alles noch nicht wirklich das wahre, aber je mehr ich
            darüber lese, desto mehr meine ich, das oben angesprochene Seite so etwas
            benutzt hat. Und wenn ich diese komischen DOM-Spezifikationen des W3Cs
            richtig verstehe, dann gibt die Möglichkeit neben dem im Browser dargestellten
            document-Knoten auch andere documents zu haben, die man beispielsweise
            über das DOM3 Load and Save Module laden kann. Aber ich gebe als Erster
            zu, daß ich mich mit dem wirklichen DOM-Krempel (d.h. der, der über die
            Objekt-Referenz in SELFHTML hinausgeht) nicht unbedingt auskenne und gerne
            korrigiert werden möchte. Das hier könnte im Mozilla/Netscape-Teil der
            importXML-Funktion eventuell ein Beispiel dafür sein:
            http://www.quirksmode.org/dom/importxml.html

            Tim

  2. Hallo,

    ist es möglich, ein RSS/RDF newsfeed per Javascript einzubinden ?

    Indirekt und auch nicht gerade Browser-uebergreifend, d. h. also eher im Intranet-Bereich, kann man das mittels XSLT loesen, hier mal fuer den IE mit MSXML 3 gezeigt.

    Der eigentliche XSL-Code wird normalerweise Server-seitig eingesetzt: http://www.et.fh-merseburg.de/person/meinike/PHP/rdf2html/. Im Beispiel wird dieser lokal verarbeitet und auf den Heise-Newsfeed angewendet. Das im Hintergrund liegende CSS und die RDF-Grafik kommt dabei nicht mit. Die Ausgabe erfolgt der Einfachheit halber in einem IFrame.

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <title>Test by TM 01/04</title>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <script language="JavaScript" type="text/javascript">
    <!--

    function HeiseNews()
      {
        var xmlinput,xslinput,htmloutput,newswin;

    // XML laden
        xmlinput=new ActiveXObject("MSXML2.DOMDocument.3.0");
        xmlinput.async=false;
        xmlinput.load("http://www.heise.de/newsticker/heise.rdf");

    // XSL laden
        xslinput=new ActiveXObject("MSXML2.DOMDocument.3.0");
        xslinput.async=false;
        xslinput.load("http://www.et.fh-merseburg.de/person/meinike/PHP/rdf2html/xsl_vorlagen/heise-newsticker.xsl");

    // Transformation
        htmloutput=xmlinput.transformNode(xslinput.documentElement);

    // Ausgabe
        newswin=parent.frames["newsout"];
        newswin.document.open();
        newswin.document.write(htmloutput);
        newswin.document.close();
      }

    //-->
    </script>
    </head>
    <body onload="HeiseNews()">
    <iframe name="newsout" src="" width="100%" height="100%"></iframe>
    </body>
    </html>

    MfG, Thomas

    --
    SVG - Learning By Coding
    http://svglbc.datenverdrahten.de/
    1. Hallo Thomas,

      ist es möglich, ein RSS/RDF newsfeed per Javascript einzubinden ?

      Indirekt und auch nicht gerade Browser-uebergreifend, d. h. also eher im Intranet-Bereich, kann man das mittels XSLT loesen, hier mal fuer den IE mit MSXML 3 gezeigt.

      Habe deinen Code (Html-Seite) mal auf meinen Server geladen, seite wird nicht angezeigt. Fehler: zugriff verweigert.

      War dann bei Dir, wäre toll wenn das so auch bei mir ginge.

      Gruß Marcel

      1. Hallo,

        Habe deinen Code (Html-Seite) mal auf meinen Server geladen, seite wird nicht angezeigt. Fehler: zugriff verweigert.

        Lokal funktioniert es bei mir direkt und online erscheint eine Warnmeldung, nach deren Bestaetigung die Funktion erfolgreich arbeitet (MSXML 3 oder hoeher erforderlich).

        Wie bereits geschrieben, es ist nur ein Versuchsballon, der auf dem Client schnell platzt.

        MfG, Thomas

        --
        SVG - Learning By Coding
        http://svglbc.datenverdrahten.de/
        1. DANKE!

          Muss mal bei Freenet nachfragen da hab´ich mein webspace.

          gruß
          Marcel