- @staticmethod
- def get(xml, xpath, element_class=None, fields=None):
- """
- Search the specifed xml node for elements that match the
- specified xpath query.
- Returns a list of objectes instanced by the specfied element_class.
- """
- if not element_class:
- element_class = Element
- if not fields:
- fields = element_class.fields.keys()
- elems = xml.xpath(xpath, namespaces)
- objs = []
- for elem in elems:
- if not fields:
- obj = element_class(elem.attrib, elem)
- else:
- obj = element_class({}, elem)
- for field in fields:
- if field in elem.attrib:
- obj[field] = elem.attrib[field]
- objs.append(obj)
- generic_elems = [element_class(elem.attrib, elem) for elem in elems]
- return objs