https://dev.w3.org/SVG/tools/svgweb/samples/svg-files/tiger.svg from __future__ import print_function import os, sys, time from PyQt4.QtCore import * from PyQt4.QtGui import * class Window (QMainWindow) : def __init__ (self) : super (Window, self).__init__ () self.tree = QTreeWidget () self.setCentralWidget (self.tree) self.scanXml ("Downloads/plant_catalog.xml") def scanXml (self, fileName) : f = QFile (fileName) if f.open (QFile.ReadOnly) : r = QXmlStreamReader (f) target = self.tree while not r.atEnd () : if r.isStartElement() : node = QTreeWidgetItem (target) node.setText (0, r.name().toString()) target = node if r.isEndElement() : target = target.parent () if r.isCharacters () : t = r.text().toString().simplified() if t != "" : node = QTreeWidgetItem (target) node.setText (0, t) r.readNext () if __name__ == "__main__" : appl = QApplication (sys.argv) win = Window () win.show () appl.exec_ () from __future__ import print_function import os, sys, time from PyQt4.QtCore import * from PyQt4.QtGui import * f = QFile ("Downloads/plant_catalog.xml") n = 0 if f.open (QFile.ReadOnly) : r = QXmlStreamReader (f) while not r.atEnd () : if r.isStartElement() : print (" "*3*n + "<" + r.name().toString() + ">") n = n + 1 if r.isEndElement() : n = n - 1 print (" "*3*n + "") if r.isCharacters () : t = r.text().toString().simplified() if t != "" : print (" "*3*n + t) r.readNext ()