+    # Define a handler for start element events
+    def StartElement(self, name, attrs ):
+        name = name.encode()
+
+        id = self.AppendItem(self.nodeStack[-1], name)
+        self.nodeStack.append(id)
+
+    def EndElement(self,  name ):
+        self.nodeStack = self.nodeStack[:-1]
+
+    def CharacterData(self, data ):
+        if data.strip():
+            data = data.encode()
+
+            self.AppendItem(self.nodeStack[-1], data)