externe XML auslesen und darstellen
bobby
- javascript
0 Paul0 Beat0 JürgenB0 JürgenB0 Malcolm Beck´s0 JürgenB0 ChrisB0 Malcolm Beck´s0 ChrisB
Hallo,
ich habe eine XML Datei deren Inhalt (Datum, Uhrzeit, Titel, Link) ich gerne auf einer html Seite anzeigen lassen möchte.
Eine Anzeige via php oder ASP ist aus technischen Gründen nicht möglich.
Die frage ist nun kann Javascript eine "externe" xml Datei öffnen / Parsen / Darstellen?
Moin,
schau mal hier:
http://www.html-world.de/program/xml_5.php
Paul
ich habe eine XML Datei deren Inhalt (Datum, Uhrzeit, Titel, Link) ich gerne auf einer html Seite anzeigen lassen möchte.
Eine Anzeige via php oder ASP ist aus technischen Gründen nicht möglich.
Welche technische gründe?
Ist es mit Perl / CGI / java / ruby etc möglich?
Gibt dir die externe Seite eine API über Javascript? Wenn nein, vergiss es.
Dein Anliegen hat übrigens einen rechtlichen Rahmen, dessen Voraussetzungen erfüllt sein müssen.
mfg Beat
Hallo bobby,
Die frage ist nun kann Javascript eine "externe" xml Datei öffnen / Parsen / Darstellen?
ja. Stichworte sind http-Request oder Ajax zum lesen der Datei und die DOM-Methoden zum parsen und darstellen.
https://developer.mozilla.org/en/AJAX
und da (bis) Schritt 4 in "AJAX:Getting Started".
Gruß, Jürgen
Hallo,
... "externe" xml Datei öffnen ...
noch eine Anmerkung hierzu: Die Datei muss von der gleichen Domain kommen, wie die HTML-Datei, die das Javascript enthält (Same Origin Policy). Die JS-Datei darf auch von "woanders" eingebunden werden.
Gruß, Jürgen
hi,
noch eine Anmerkung hierzu: Die Datei muss von der gleichen Domain kommen, wie die HTML-Datei, die das Javascript enthält (Same Origin Policy).
Kann man das Serverseitig nicht einfach umgehen? Sprich, ein Serverseitiges Script holt die Externe Ressource, speichert sie auf meinem Server und dann greift das Javascript?
Nur mal aus Neugier, weil ich oft von der SOP lese.
mfg
Hallo Malcolm,
nicht ganz so. Ein CGI holt die Datei von irgendwo auf deinen Server und schickt sie von da dann an den Besucher.
Dazu benötigt man aber Webspace mit CGI-Unterstützung. HTTP-Requests funktionieren aber auch ohne. Man kann die Datei - egal ob JSON, XML, Plaintext, ... - direkt einlesen und verarbeiten. Mein GPX-Viewer arbeitet so.
Gruß, Jürgen
hi Jürgen,
HTTP-Requests funktionieren aber auch ohne. Man kann die Datei - egal ob JSON, XML, Plaintext, ... - direkt einlesen und verarbeiten. Mein GPX-Viewer arbeitet so.
Kann denn dein Script die SOP umgehen, nur mit Javascript? Ich kenne mich mit Javascript nicht so aus, ich weiss nur, was Ajax tun kann, und was die SOP unterbinden soll (ich kann es zumindest erahnen).
Google stellt ja eine API zur verfügung, die den zugriff durch andere Domains erlaubt, was aber, wenn keine API vorliegt?
mfg
Hallo Malcolm,
die JS-Datei kann von jeder beliebigen Domain kommen, die SOP gilt für die HTML-Datei und die aus dieser heraus angeforderten (XML-)Datei.
Daher kann mein Script zwar die GPX-Dateien anfordern, ohne das ich CGI benötige, die SOP kann es nicht umgehen.
Gruß, Jürgen
hi Jürgen,
Daher kann mein Script zwar die GPX-Dateien anfordern, ohne das ich CGI benötige, die SOP kann es nicht umgehen.
Genau darauf wollte ich hinaus. Danke trotzdem für den Link, ich werde mir das mal genauer anschauen.
Ich fahre im Sommer um einige Seen im Ruhrgebiet Rollerblades, und es interessiert mich schon die ganze Zeit, wieviele Kilometer die Strecken betragen, die ich so fahre.
Werde mal schauen, ob ich durch dein Script durchsteige, und ob ich die GPX-Daten auch so hinbekomme.
mfg
Hallo Malcolm,
Werde mal schauen, [...]und ob ich die GPX-Daten auch so hinbekomme.
die GPX-Dateien stammen normalerweise aus GPS-Empfängern, z.B. aus Navis oder GPS-Loggern. Manche Planungssoftware bietet auch einen GPX-Export an. Von Hand würde ich GPX-Dateien nicht erstellen wollen, obwohl auch das geht:
GPX: the GPS Exchange Format.
Gruß, Jürgen
hi Jürgen,
die GPX-Dateien stammen normalerweise aus GPS-Empfängern, z.B. aus Navis oder GPS-Loggern. Manche Planungssoftware bietet auch einen GPX-Export an. Von Hand würde ich GPX-Dateien nicht erstellen wollen, obwohl auch das geht:
GPX: the GPS Exchange Format.
Danke für den Link, aber ich habe gerade die dafür vorgesehene Funktion in Google-Maps entdeckt -- man muss einfach nur ein bisschen damit rumspielen.
Die erste hälfte
Die zweite hälfte
Knappe 13 km. Mit der Ische im Schlepptau brauche ich für eine Runde 1 St., alleine schaffe ich die Runde in ca. 30 Min.
Ich wusste es doch immer -- Frauen sind nur eine Bremse. Diesen Sommer kann sie zusehen, wie sie die runde schafft!
BTW, Google meint ca. "1,14" + "1,28" = 2 Stunden und 42 Minuten.
Tja Google, ich würde mal sagen, weniger programmieren und dafür etwas mehr bewegen; Geld verdienen ist schliesslich nicht alles :)
mfg
Hi,
noch eine Anmerkung hierzu: Die Datei muss von der gleichen Domain kommen, wie die HTML-Datei, die das Javascript enthält (Same Origin Policy).
Kann man das Serverseitig nicht einfach umgehen? Sprich, ein Serverseitiges Script holt die Externe Ressource, speichert sie auf meinem Server und dann greift das Javascript?
JavaScript holt die Daten dann immer noch von der Domain, von der das Dokument stammt.
Woher der Server diese Daten hat oder holt, ist hier natürlich wieder mal, wie so oft, vollkommen uninteressant.
MfG ChrisB
hi,
Kann man das Serverseitig nicht einfach umgehen? Sprich, ein Serverseitiges Script holt die Externe Ressource, speichert sie auf meinem Server und dann greift das Javascript?
JavaScript holt die Daten dann immer noch von der Domain, von der das Dokument stammt.
Woher der Server diese Daten hat oder holt, ist hier natürlich wieder mal, wie so oft, vollkommen uninteressant.
Das verstehe ich jetzt nicht.
Wenn ich mit PHP eine Ressource von sagen wir yahoo.de auslese, und diese dann auf meinem Server speichere (dort, wo auch mein Javascript liegt) oder einer Datenbank, und dann mit Javascript auf diese von mir gespeicherten Daten zugreife, dann greife ich doch auf eine Lokale Ressource zu, oder?
Das mein PHP-Script diese Daten von woanders bezieht, kann Javascript doch garnicht wissen.
Oder verstehe ich euch falsch?
mfg
Hi,
Wenn ich mit PHP eine Ressource von sagen wir yahoo.de auslese, und diese dann auf meinem Server speichere (dort, wo auch mein Javascript liegt) oder einer Datenbank, und dann mit Javascript auf diese von mir gespeicherten Daten zugreife, dann greife ich doch auf eine Lokale Ressource zu, oder?
„Lokal” im Sinne von von der gleichen Domain stammend, ja.
Das mein PHP-Script diese Daten von woanders bezieht, kann Javascript doch garnicht wissen.
Ja, es interessiert JavaScript ja auch nicht im geringsten, wie ich schon schrieb.
So lange JavaScript per XMLHttpRequest mit der gleichen Domain spricht, von der auch das HTML-Dokument, in dessen Rahmen es ausgeführt wird, stammt, ist alles in Butter.
MfG ChrisB
hi,
So lange JavaScript per XMLHttpRequest mit der gleichen Domain spricht, von der auch das HTML-Dokument, in dessen Rahmen es ausgeführt wird, stammt, ist alles in Butter.
Genau das meine ich ja.
Insofern spielt ja die SOP, von den Rechtlichen Problemen mal abgesehen, keine Rolle, wenn man sich zu helfen weiss.
mfg
So lange JavaScript per XMLHttpRequest mit der gleichen Domain spricht, von der auch das HTML-Dokument, in dessen Rahmen es ausgeführt wird, stammt, ist alles in Butter.
Genau das meine ich ja.
Insofern spielt ja die SOP, von den Rechtlichen Problemen mal abgesehen, keine Rolle, wenn man sich zu helfen weiss.
Naja, das ganze ist doch ein bisschem aufwendiger. Es hilft dir ja i.d.R. nicht nur den Response einer URL abzufragen, wenn du mit JS auf eine Seite zugreifen willst. Du brauchst u.U. noch die Bilder, die CSS Dateien, das Javascript usw. Wenn es nur um den reinen Inhalt geht, dann läßt aber so die SOP umgehen.
Struppi.
hi,
Du brauchst u.U. noch die Bilder, die CSS Dateien, das Javascript usw.
Das Stimmt. Da ich sowas noch nie gebraucht habe, kann ich mir nur schwer ein Bild über so ein Szenario machen.
mfg