def tree_to_xml(root): xml = XMLBuilder('map', version='0.9.0') def rec_tree(tree, xnode): if tree == {}: return xnode['folded'] = 'true' for key, subtree in tree.iteritems(): rec_tree(subtree, xnode.node(text=key)) xroot = xml.node(text='Categories') rec_tree(root, xroot) xroot['folded'] = 'false' return str(xml)