bobby: externe XML auslesen und darstellen

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?

  1. Moin,
    schau mal hier:
    http://www.html-world.de/program/xml_5.php

    Paul

  2. 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

    --
    ><o(((°>           ><o(((°>
       <°)))o><                     ><o(((°>o
    Der Valigator leibt diese Fische
  3. 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

    1. 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

      1. 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

        1. 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

          1. 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

            1. 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

              1. 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

                1. 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

                  1. 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

        2. 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

          --
          “Whoever best describes the problem is the person most likely to solve the problem.” [Dan Roam]
          1. 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

            1. 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

              --
              “Whoever best describes the problem is the person most likely to solve the problem.” [Dan Roam]
              1. 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

                1. 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.

                  1. 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