废话少说,直接上代码:
import xml.etree.ElementTree as ET
import json
def xml2json(node):
if not isinstance(node, ET.Element):
raise Exception("node format error.")
if len(node) == 0:
return node.tag, node.text
data = {}
temp = None
for child in node:
key, val = xml2json(child)
if key in data:
if type(data[key]) == list:
data[key].append(val)
else:
temp = data[key]
data[key] = [temp, val]
else:
data[key] = val
return node.tag, data
def main():
path = "./name.xml"
tree = ET.parse(path)
node = tree.getroot()
tag, data = xml2json(node)
f = open("./temp.json", "w", encoding="utf-8")
f.write(json.dumps(data, ensure_ascii=False, indent=4))
f.close()
main()