summaryrefslogtreecommitdiff
path: root/xml.py
blob: c49e01a5e21d97eda1c4a6678529f223ba8eef60 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
from xml.etree.ElementTree import ElementTree
import model

class DataXML(model.Data):
    """Reads network information from a XML file"""
    
    def parse_config():
        """Reads and sets up XML config file fields"""
        
        self.data_file = self.config['Storage']['xml_file']
        
    def load_data(self):
        """Parse XML for getting network information""" # Ugly implementation. Beautify.
        root = ElementTree(file=self.data_file).getroot()
        for elem in root:
            network = model.Network(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)
nihil fit ex nihilo