XML Datei per Javascript einlesen
Anonymus
- javascript
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
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?
Hiermit funktioniert es außer im Crome auch lokal.
Gruß, Jürgen
Danke, werd ich morgen probieren
für den 2. link braucht man aber leider einen login
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
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.
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