| Server IP : 123.56.80.60 / Your IP : 216.73.216.78 Web Server : Apache/2.4.54 (Win32) OpenSSL/1.1.1s PHP/7.4.33 mod_fcgid/2.3.10-dev System : Windows NT iZhx3sob14hnz7Z 10.0 build 14393 (Windows Server 2016) i586 User : SYSTEM ( 0) PHP Version : 7.4.33 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : C:/Program Files/python/Lib/site-packages/qcloud_cos/ |
Upload File : |
# -*- coding=utf-8
import xml.etree.ElementTree
class Xml2Dict(dict):
def __init__(self, parent_node):
if parent_node.items():
self.updateDict(dict(parent_node.items()))
for element in parent_node:
if len(element):
aDict = Xml2Dict(element)
self.updateDict({element.tag: aDict})
elif element.items():
elementattrib = element.items()
if element.text:
elementattrib.append((element.tag, element.text))
self.updateDict({element.tag: dict(elementattrib)})
else:
self.updateDict({element.tag: element.text})
def updateDict(self, aDict):
for key in aDict:
if key in self:
value = self.pop(key)
if type(value) is not list:
lst = list()
lst.append(value)
lst.append(aDict[key])
self.update({key: lst})
else:
value.append(aDict[key])
self.update({key: value})
else:
self.update({key: aDict[key]})
if __name__ == "__main__":
s = """<?xml version="1.0" encoding="utf-8" ?>
<result xmlns= "wqa.bai.com">
<count n="1">10</count>
<data><id>1</id><name>test1</name></data>
<data><id>2</id><name>test2</name></data>
<data><id>3</id><name>test3</name></data>
</result>"""
root = xml.etree.ElementTree.fromstring(s)
xmldict = Xml2Dict(root)
print(xmldict)