from .LibraryParser import LibraryParser from xml.dom import minidom, Node from xml.dom.minidom import Entity class XMLLibraryParser(LibraryParser): def load_instance(self, xmlnode): print("instance : [" + xmlnode.getAttribute("id") + "]") def load_library(self, xmlnode): """ Loads a library from the specified XML node. """ raise NotImplementedError() if xmlnode.tagName != "library": return id = xmlnode.getAttribute("id") for child in xmlnode.childNodes: if child.tagName == "instances": for child2 in child.childNodes: self.load_library_instance_from_xml(child) def load_file(self, filename): print("loading xml from " + filename + "... ") dom = minidom.getDOMImplementation() dt = dom.createDocumentType("mocha", "-//MBS//DTD Mocha 1.0 Dev//EN", "https://doctype.schemas.alcetech.net/Mocha/1.0/mocha-1.0.dtd") dt.entities.setNamedItem(Entity("IDC_ReturnInstanceSetMethodBinding", "{AADC20F9-7559-429B-AEF0-97E059295C76}", None, None)) dom = minidom.parse(filename) if (dom.documentElement.tagName != "mocha"): print(filename + ": top-level tag is not 'mocha'") return for child in dom.documentElement.childNodes: if child.nodeType == Node.ELEMENT_NODE: if child.tagName == "libraries": for child2 in child.childNodes: self.load_library(child) print ("\n")