-
Notifications
You must be signed in to change notification settings - Fork 0
/
xml_reader.py
57 lines (49 loc) · 1.21 KB
/
xml_reader.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from xml.dom import minidom
class XmlReader(object):
"""
Clase base de XML.
"""
def __init__(self, path=None):
self.document = minidom.parse(path)
def get_file(self):
return self.document
def get_elements(self, node_xml):
return self.document.getElementsByTagName(node_xml)
def get_attribute(self, node, field=None):
"""
Retorna un atributo en especifico.
"""
data = {}
atribute = node[0].getAttribute(field)
data[field] = atribute
return data
def get_list_attributes(self, nodes, fields=[]):
"""
Retorna lista de atributos.
"""
data = []
dic = {}
# Extraer datos del nodo.
for node in nodes:
# Recorrer lista de atributos.
for name in fields:
atribute = node.getAttribute(name)
# Actualizar diccionario.
dic.update({name: atribute})
# Agregar a la lista los diccionarios.
data.append(dic)
return data
def get_dict_attributes(self, node, fields=[]):
"""
Retorna diccionario de atributos.
"""
data = {}
# Recorrer lista de atributos.
for name in fields:
# Extraer datos del nodo.
atribute = node[0].getAttribute(name)
# Actualizar diccionario.
data.update({name: atribute})
return data