Anonymus: XML Datei per Javascript einlesen

Hallo,
ich spiele mich im Moment mit Googlemaps und nutze es eigentlich nur für eigene Zwecke lokal.
Nun wollte ich eine Funktion einbauen, mit dieser der Nutzer eine XML-Datei auf seinem Computer auswählen kann. Die Informationen werden dann für sowas wie eine Routendarstellung genutzt.

Nun habe ich aber leider nicht raus gefunden, wie ich mit javascript (darauf basiert Googlemaps) eine lokale XML-Datei einlesen kann.

Kann mir wer helfen?

Danke

  1. Hallo Anonymus,

    Nun habe ich aber leider nicht raus gefunden, wie ich mit javascript (darauf basiert Googlemaps) eine lokale XML-Datei einlesen kann.

    Kann mir wer helfen?

    ja, ich.

    Hiermit funktioniert es außer im Crome auch lokal.

    Gruß, Jürgen

    1. Danke, werd ich morgen probieren

      für den 2. link braucht man aber leider einen login

      1. Hallo Anonymus,

        für den 2. link braucht man aber leider einen login

        nein. Da musst du den Dateinamen der gpx-Datei eingeben, versuch mal "Autobahn.gpx".

        Zur Info: Du musst, wenn du per HTTP-Request (AJAX) eine Datei ohne Webserver von der lokalen Festplatte liest, nur beachten, dass hier nie der Statuscode "200" kommt, sondern nur die "0".

        Gruß, Jürgen

        1. leider verstehe ich deinen Code nicht.
          Da meine xml Datei anders aufgebaut ist, muss ich mir selber einen Parser schreiben (außerdem enden meine Dateien mit .xml - da immer neue kommen will ich sie nicht ständig auf .gpx ändern). Deshalb wollte ich raus finden, wie du die Dateien einliest und die Tags des XMLs abfrägst. Leider steig ich dazu nicht weit genug durch.

          1. Hallo Anonymus,

            ... (außerdem enden meine Dateien mit .xml - da immer neue kommen will ich sie nicht ständig auf .gpx ändern)

            das umbenennen hilft hier auch nicht. Die Dateien dürfen beliebig heißen, auf den Inhalt (hier GPX) kommt es an.

            Deshalb wollte ich raus finden, wie du die Dateien einliest

            so:

                  GDownloadUrl(fname, function(data, responseCode) {  
                    if (responseCode != 200 && responseCode != 0 ) {  // 0 bei lokaler Datei!  
                      JB_GM_Info(id,"Beim Oeffnen der Datei "+fname+" ist der Fehler "+responseCode+" aufgetreten!",true);  
                      return;  
                    }  
                    dieses.parseGPX(data) ; // Verarbeitung der Daten  
                  } );
            

            Die Methode "GDownloadUrl" stammt aus der Google Maps API V2.

            ...und die Tags des XMLs abfrägst. Leider steig ich dazu nicht weit genug durch.

            so:

                var xml = GXml.parse(data);  
                var trk = xml.documentElement.getElementsByTagName("trk"); // Tracks  
             ...  
                for(var k=0;k<trk.length;k++) {  
                  var name = trk[k].getElementsByTagName("name");  
             ...  
                  var trkpts = trk[k].getElementsByTagName("trkpt"); // Trackpunkte  
                  var trkptslen = trkpts.length;  
             ...  
                  for(var i=0;i<trkptslen;i++) { // Trackdaten erfassen  
                    var lat = parseFloat(trkpts[i].getAttribute("lat"));  
                    var lon = parseFloat(trkpts[i].getAttribute("lon"));  
                    track.push(new GLatLng(lat,lon));  
             ...
            

            Die Methode "GXml.parse" stammt ebenfalls aus der Google Maps API V2.

            Am besten stöberst du mal in den Beispielen, da findest du auch etwas zum Einlesen von Dateien.

            Gruß, Jürgen