我有一个代码转换dict对象并把它放到树视图上。对于简单的xml,它可以接受,但是对于复杂的xml,它就不起作用了。在
问题出在walk-tu-dict函数上,但我不能正确地处理它。在#-*- encoding: utf8 -*-
from Tkinter import *
from ttk import Treeview
import xmltodict
class App:
def __init__(self, root):
try:
self.tagsoup = xmltodict.parse(file(sys.argv[1],'r').read())
self.tree = Treeview(root, height=30)
self.tree.pack()
self.last = ''
self.walk_dict(self.tagsoup)
except Exception as e:
print e
def walk_dict(self, d,depth=0):
for k,v in sorted(d.items(),key=lambda x: x[0]):
if isinstance(v, dict):
self.last = k
self.tree.insert('', 'end', k, text = k)
self.walk_dict(v,depth+1)
else:
self.tree.insert(self.last, 'end', k, text = k)
self.tree.insert(k, 'end', v, text = v)
root = Tk()
App(root)
root.mainloop()
我提供的xml是:
^{pr2}$
这是输出。请注意,opcao6是在树中呈现的,其子级在下面呈现。在