import lxml.etree s = "adsfasdf" t = lxml.etree.fromstring(s) whatever = [dict((item.tag, item.text) for item in charity.iterchildren()) for charity in t.findall("charity")]