correct complex data xml parsing

This commit is contained in:
Michele Lazzeri 2012-01-12 13:28:32 +01:00
parent 6b3792aef2
commit 2966c34352

View File

@ -187,12 +187,11 @@ class XMLParser(BaseParser):
`data` will simply be a string representing the body of the request.
`files` will always be `None`.
"""
data = {}
tree = ET.parse(stream)
data = self._xml_convert(tree.getroot())
return (data, None)
def _xml_convert(self, element):
"""
convert the xml `element` into the corresponding python object
@ -203,19 +202,15 @@ class XMLParser(BaseParser):
if len(children) == 0:
return self._type_convert(element.text)
else:
if element.tag == "resource":
# if the fist child tag is list-item means all children are list-item
if children[0].tag == "list-item":
data = []
for child in children:
data.append(self._xml_convert(child))
data.append(self._xml_convert(child))
else:
if children[0].tag == "resource":
data = []
for child in children:
data.append(self._xml_convert(child))
else:
data = {}
for child in children:
data[child.tag] = self._xml_convert(child)
data = {}
for child in children:
data[child.tag] = self._xml_convert(child)
return data