From: Tony Mack Date: Thu, 10 Nov 2011 02:27:35 +0000 (-0500) Subject: added generic get() and add() methods X-Git-Tag: sfa-1.1-3~79 X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;h=4ebcc1b175ddfa3c4c0173d70b304e0c9a4facc1;p=sfa.git added generic get() and add() methods --- diff --git a/sfa/rspecs/elements/element.py b/sfa/rspecs/elements/element.py index 6757f8a8..2b27d9e5 100644 --- a/sfa/rspecs/elements/element.py +++ b/sfa/rspecs/elements/element.py @@ -7,3 +7,17 @@ class Element(dict): dict.__init__(self, self.fields) self.update(fields) + @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