5 def __init__(self, fields={}, element=None, keys=None):
7 dict.__init__(self, dict.fromkeys(self.fields))
12 self[key] = fields[key]
15 def get_elements(xml, xpath, element_class=None, fields=None):
17 Search the specifed xml node for elements that match the
18 specified xpath query.
19 Returns a list of objects instanced by the specified element_class.
22 element_class = Element
23 # xxx this obviously is wrong...
24 # if not fields and hasattr(element_class, fields):
25 # fields = element_class.fields
26 elems = xml.xpath(xpath)
30 obj = element_class(elem.attrib, elem)
32 obj = element_class({}, elem)
34 if field in elem.attrib:
35 obj[field] = elem.attrib[field]
37 generic_elems = [element_class(elem.attrib, elem) for elem in elems]
42 def add_elements(xml, name, objs, fields=None):
44 Adds a child node to the specified xml node based on
45 the specified name , element class and object.
47 if not isinstance(objs, list):
55 elem = xml.add_element(name)
57 if field in obj and obj[field]:
58 elem.set(field, unicode(obj[field]))