from xml.etree.ElementTree import ElementTree class WhoisNetwork(): def __init__(self, name): self.name = name self.domain = None self.ip_blocks = [] self.data = {} class WhoisData(): def __init__(self, config): self.networks = [] self.config = config def parse_config(self): pass def load_data(self): pass def get_networks(self): if self.networks == None: self.load_data() return self.networks class WhoisDataXML(WhoisData): def parse_config(): self.data_file = self.config.get('Storage', 'xml_file') def load_data(self): root = ElementTree(file=self.data_file).getroot() for elem in root: network = WhoisNetwork(elem.attrib['name']) for e in elem: if e.tag == 'ip_block': network.ip_blocks.append(e.text) else: network.data[e.tag] = e.text self.networks.append(network)