parser = ET.XMLParser(recover=True)
tree = ET.fromstring(xml_data, parser)
print(tree.xpath('//city'))
cities = [[c.text for c in n if c.tail] for n in tree.xpath('//city')]
Как получить все дочерние узлы в одном запросе, используя lxml и XPATH