import re import simplejson as json def xml2dict(xml, jsonString = ''): tags, keys = re.findall('</?[A-Za-z0-9]+>',xml), [] for tag in tags: keys.append(re.sub('[</>]+','',tag)) for index in range(len(tags)-1): jsonString += {'<><>': '"'+keys[index]+'": {', '<></>': '"'+keys[index]+'": "'+xml[xml.find(tags[index])+len(tags[index]):xml.find(tags[index+1])]+'"', '</><>': ', ', '</></>': '}'}[tags[index].replace(keys[index],'')+tags[index+1].replace(keys[index+1],'')] return json.loads('{%s}' % jsonString)