--- android/TrainInfoService/src/dk/thoerup/traininfoservice/banedk/CompareStations.java 2013/01/04 10:53:49 1907 +++ android/TrainInfoService/src/dk/thoerup/traininfoservice/banedk/CompareStations.java 2013/01/04 11:25:45 1908 @@ -60,7 +60,11 @@ JsoupInvocation jsoup = new JsoupInvocation(new URL("http://trafikinfo.bane.dk/Trafikinformation/Stationsliste"), 5000); + + Map idToStation = new TreeMap(); + Map stationToId = new TreeMap(); Map banedkStations = new TreeMap(); + Set dbStations = new TreeSet(); StringBuilder sb = new StringBuilder(); @@ -82,8 +86,16 @@ for(Element e : tables) { if (e.tagName().equals("table") ){ Elements links = e.getElementsByTag("a"); - for (Element link : links) { - banedkStations.put( link.text(), link.attr("href") ); + for (Element link : links) { + String name = link.text(); + String href = link.attr("href"); + + String hrefParts[] = href.split("/"); + String hrefCode = URLDecoder.decode(hrefParts[4], "UTF-8"); + + idToStation.put(hrefCode, name); + stationToId.put(name, hrefCode); + banedkStations.put( name, href ); } } } @@ -124,12 +136,9 @@ for (StationEntry station : bean.entries) { if (station.isRegional() || station.isStrain()) { - String href = banedkStations.get(station.getName() ); - String hrefCode = "null"; - if ( href != null) { - String hrefParts[] = href.split("/"); - hrefCode = URLDecoder.decode(hrefParts[4], "UTF-8"); - } + String hrefCode = stationToId.get(station.getName()); + if (hrefCode == null) + hrefCode = "null"; String id = ""; String uri = "";