RSS/RDF newsfeed
Marcel
- javascript
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
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
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
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
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
hi,
In der Theorie müßte es möglich sein
nein, ich denke dabei wirst du schon an dieser stelle scheitern:
- 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
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:
Jetzt mehr oder weniger aktuell scheint wie Variante mit einem Objekt namens
XMLHTTPRequest zu geben.
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
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
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
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
DANKE!
Muss mal bei Freenet nachfragen da hab´ich mein webspace.
gruß
Marcel