Ciao ragazzi,
ho un problemone: sto scrivendo un parser di un file GPS (XML per la memorizzazione di waypoint su dispositivi GPS): devo scandire il file e memorizzare latitudine e longitudine di ogni waypoint.
La logica è la seguente: scandisco il file alla riceca del tag "trkpst" che ha due attributi, lat e lon: memorizzo i due valori in un array di stringhe lungo due, e poi aggiungo questo array di stringhe un un arraylist.
Il problema è che, quando stampo il contenuto dell'arraylist, mi stampa n volte (con n=size dell'arraylist) l'ultimo valore di lat e lon rilevato!!
I pezzi di codice sono i seguenti:
Sembbrerebbe funzionare perchè ogni volta che stampa la riga "test...." i valori di lat e lon sono corretti;codice:ArrayList cont= new ArrayList(); String[] record=new String[2]; //trkpt ha solo 2 attributi String[] rec=new String[2]; if (elemento.toString().equals("trkpt")){ for(int i=0; i < attributi.getLength(); i++) { record[i]=attributi.getValue(i).toString(); } System.out.println("test "+ record[0].toString() +" " + record[1].toString()); cont.add(record); System.out.println("finito di aggiungere"); }
Questo è il pezzo che stampa n volte (con n=cont.size) le ultime lat e lon.codice:public void printAL(){ for (int i=0; i<cont.size();i++){ rec= (String[]) cont.get(i); System.out.println("Lat: " + rec[0].toString() + " Long: " +rec[1].toString()); } }
Potete darmi una mano?
Grazie
Graziano

Rispondi quotando