- @staticmethod
- def get(element_class, xml, xpath, namespaces=None):
- elems = xml.xpath(xpath, namespaces)
- generic_elems = [element_class(elem.attrib, elem) for elem in elems]
- return generic_elems
-
-
- @staticmethod
- def add(xml, element_class, name, obj):
- elem = xml.add_element(name)
- for field in element_class.fields:
- if field in obj and obj[field]:
- elem.set(field, obj[field])
- return elem
+ def __getattr__(self, name):
+ if hasattr(self.__dict__, name):
+ return getattr(self.__dict__, name)
+ elif hasattr(self.element, name):
+ return getattr(self.element, name)
+ else:
+ raise AttributeError("class Element of type {} has no attribute {}"
+ .format(self.__class__.__name__, name))