def startElement(self, name, attrs): """Called by the reader at the open tag of each element""" if name == u'folder' or name == u'xbel': newItem = TreeItem(self.currentItem, self.folderFormat.name) if self.currentItem: self.currentItem.childList.append(newItem) else: self.rootItem = newItem if attrs.get(u'folded', '') == 'no': newItem.open = True self.currentItem = newItem elif name == u'bookmark': newItem = TreeItem(self.currentItem, self.bookmarkFormat.name) if self.currentItem: self.currentItem.childList.append(newItem) else: raise xml.sax.SAXException, 'No valid parent folder' newItem.data[TreeFormats.linkFieldName] = attrs.get(u'href', '') self.currentItem = newItem elif name == u'title': self.text = '' elif name == u'separator': newItem = TreeItem(self.currentItem, self.separatorFormat.name) if self.currentItem: self.currentItem.childList.append(newItem) else: raise xml.sax.SAXException, 'No valid parent folder' self.currentItem = newItem else: # unsupported tags pass