| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- from xml.dom.minidom import parse
- from Error import Error
- from Point import Point
- from Character import Character
- class LicensePlate:
- def __init__(self, file_path):
- try:
- self.dom = parse(file_path)
- except IOError:
- Error("Incorrect file name given.")
- return None
- else:
- properties = self.get_properties()
- self.image = str(properties['uii']) + '.' + str(properties['type'])
- self.width = properties['width']
- self.height = properties['height']
- info = self.set_plate()
- def get_properties(self):
- children = self.get_children("properties")
- properties = {}
- for child in children:
- if child.nodeType == child.TEXT_NODE:
- properties[child.nodeName] = child.data
- elif child.nodeType == child.ELEMENT_NODE:
- properties[child.nodeName] = child.firstChild.data
- return properties
- # TODO : create function for location / characters as they do the same
- def set_plate(self):
- children = self.get_children("plate") # most recent version
-
- for child in children:
- if child.nodeName == "regnum":
- self.license_full = child.firstChild.data
- elif child.nodeName == "identification-letters":
- self.country = child.firstChild.data
- elif child.nodeName == "location":
- corners = self.get_children("quadrangle", child)
-
- self.corners = []
- for corner in corners:
- if corner.nodeName == "point":
- self.corners.append(Point(corner))
- elif child.nodeName == "characters":
- characters = child.childNodes
-
- self.license_characters = []
- for character in characters:
- if character.nodeName == "character":
- self.license_characters.append(Character(character))
- else:
- pass
- #print child.nodeName
-
- def get_node(self, node, dom=None):
- if not dom:
- dom = self.dom
- return dom.getElementsByTagName(node)[0]
- def get_children(self, node, dom=None):
- return self.get_node(node, dom).childNodes
|