def initialize(): print "" print "" def add_node(node): nodestring = "" nodestring = "" else: nodestring = "%s />" % nodestring print nodestring def add_segment( seg): segstring = "" else: segstring = "%s />" % segstring print segstring def add_multi(multi, type): print "<%s id='%s' timestamp='%s'>" % (type, multi['id'], multi['timestamp']) for i in multi['segs']: print "" % i['id'] print_tags(multi['tags']) print ""%type def print_tags(tags): if tags: for i in tags.split(";"): (k, v) = i.split("=") if (k and v): k = k.replace("&", "&").replace("<", "<").replace(">", ">") v = v.replace("&", "&").replace("<", "<").replace(">", ">") print "" % (k, v) def finish(): print "" if __name__ == "__main__": initialize() add_node({'id':1, 'lat':2, 'lon':3, 'timestamp': 4, 'visible': 5, 'tags': "foo=bar;baz=qux"}) add_node({'id':1, 'lat':2, 'lon':3, 'timestamp': 4, 'visible': 5}) add_multi({'id':2, 'timestamp':'5', 'segs':[{'id':10}, {'id': 15}], 'tags':"foo=bar"}, "way") add_segment({'id':1, 'lat':2, 'lon':3}) add_segment({'id':1, 'lat':2, 'lon':3, 'tags': "foo=bar>;baz=qux<"}) add_segment({'id':1, 'lat':2, 'lon':3, 'tags': "foo=&;&=qux"}) finish()