Помогите вывести содержимое xml файла в Treeview

Помогите вывести содержимое xml файла в Treeview, с последующим выбором из списка.
Чем удобней пользоваться из ВСТРОЕННЫХ средств python, не используя сторонние библиотеки?
Google выдал : xmltodict, tree.item(get), xml.etree.ElementTree, import xml.dom.minidom

Содержимое test2.xml:

<?xml version="1.0"?>
<library displayName="Library">
    <description />
    <folder displayName="Папка 1">
        <folder displayName="Папка 1.1">
            <element displayName="Файл1.1" file="Файл1.1.kdw" />
            <element displayName="Файл1.2" file="Файл1.2.kdw" />
            <element displayName="Файл1.3" file="Файл1.3.kdw" />
        </folder>
    </folder>
    <folder displayName="Папка 2">
        <folder displayName="Папка 2.1">
            <element displayName="Файл2.1" file="Файл2.1.kdw" />
            <element displayName="Файл2.2" file="Файл2.2.kdw" />
            <element displayName="Файл2.3" file="Файл2.3.kdw" />
        </folder>
    </folder>
</library>

Содержимое parseXML2.py:

from tkinter import *
from tkinter.ttk import Treeview
import xml.etree.ElementTree as ET

class App:

  def __init__(self, root):

    try:
      with open('test2.xml') as f:
        read_data = f.read()

      rootNode = ET.fromstring(read_data)

      self.tree = Treeview(root)
      self.tree.pack(expand=True, fill='both')
      self.walk_dict(rootNode)
    except Exception as e:
      print(e)

  def walk_dict(self, d, depth=0, parent=""):

    for child in d:
      nodeName = child.attrib.__str__()
      if(child.tag == 'folder'):
          print(child.get('displayName'))
          item = self.tree.insert(parent, 'end', None, text=child.get('displayName'))

      elif(child.tag == 'element'):
          item = self.tree.insert(parent, 'end', None, text=child.get('file'))

      if child.__len__() > 0:
          self.walk_dict(child, depth + 1, parent=item)
      else:
          if(child.text != None):
              self.tree.insert(item, 'end', None, text=child.text)


gui = Tk()
gui.geometry("500x600")
App(gui)
gui.mainloop()

Как убрать голубую строку вверху? введите сюда описание изображения


Ответы (0 шт):