#!/usr/bin/python from xml.dom.minidom import parseString import urlgrab from kml import kml_string cache = urlgrab.Cache(cache=".cache") data = cache.get("http://www.streetcar.co.uk/LocationsXml.xml").read() tree = parseString(data) places = {} for table in tree.getElementsByTagName("Table"): places[table.getElementsByTagName("LN")[0].firstChild.data] = ( float(table.getElementsByTagName("WLo")[0].firstChild.data), float(table.getElementsByTagName("WLa")[0].firstChild.data), ) print kml_string(places)
rs = xml.getElementsByTagName("RecordSet")[0] records = rs.getElementsByTagName("Record") for record in records: atm = {} fields = record.getElementsByTagName("Field") for field in fields: if not field.firstChild: content = "" else: content = field.firstChild.data name = field.getAttribute("name") atm[name] = content atm["lat"] = float(record.getElementsByTagName("Lat")[0].firstChild.data) atm["lon"] = float(record.getElementsByTagName("Lon")[0].firstChild.data) yield atm def kml_gen_atms(lat=51.51856, lon=-0.14377, maxDistance=3, max_results=50): atms = {} for atm in gen_link_atms(lat=lat, lon=lon, maxDistance=maxDistance, max_results=max_results): if atm.has_key("surcharge_value") and int(atm["surcharge_value"]) > 0: continue # print atm atms[atm["institution_name"] + ", " + atm["street"]] = (atm["lon"], atm["lat"]) return atms if __name__ == "__main__": print kml_string(kml_gen_atms())