79 assert type(dictitem)
is not type(list)
81 if isinstance(dictitem, dict):
82 for (tag, child)
in dictitem.iteritems():
83 if isinstance(child, str):
84 child = _xml_escape(child)
85 if str(tag) ==
'_text':
86 parent.text = str(child)
88 for listchild
in child:
89 elem = ElementTree.Element(tag)
91 _dict2xml_recurse (elem, listchild)
93 elem = ElementTree.Element(tag)
95 _dict2xml_recurse (elem, child)
97 parent.text = str(dictitem)
107 nodedict = dictclass()
109 if len(node.items()) > 0:
111 nodedict.update(dict((k, _xml_unescape(v)
if isinstance(v, str)
else v)
112 for k,v
in node.items()))
116 newitem = _xml2dict_recurse (child, dictclass)
117 if isinstance(newitem, str):
118 newitem = _xml_unescape(newitem)
119 if child.tag
in nodedict:
121 if isinstance(nodedict[child.tag], list):
123 nodedict[child.tag].append(newitem)
126 nodedict[child.tag] = [nodedict[child.tag], newitem]
129 nodedict[child.tag] = newitem
131 if node.text
is None:
134 text = node.text.strip()
136 if len(nodedict) > 0:
140 nodedict[
'_text'] = text
143 if node.text: nodedict = node.text.strip()