5 def __init__(self, fields={}, element=None, keys=None):
7 dict.__init__(self, self.fields)
12 self[key] = fields[keys]
15 def get(xml, xpath, element_class=Element, fields=None):
17 Search the specifed xml node for elements that match the
18 specified xpath query.
19 Returns a list of objectes instanced by the specfied element_class.
22 fields = element_class.fields.keys()
23 elems = xml.xpath(xpath, namespaces)
27 obj = element_class(elem.attrib, elem)
29 obj = element_class({}, elem)
31 if field in elem.attrib:
32 obj[field] = elem.attrib[field]
34 generic_elems = [element_class(elem.attrib, elem) for elem in elems]
39 def add(xml, name, objs, fields=None):
41 Adds a child node to the specified xml node based on
42 the specified name , element class and object.
44 if not isinstance(objs, list):
50 elem = xml.add_element(name)
52 if field in obj and obj[field]:
53 elem.set(field, obj[field])