From 4ebcc1b175ddfa3c4c0173d70b304e0c9a4facc1 Mon Sep 17 00:00:00 2001 From: Tony Mack Date: Wed, 9 Nov 2011 21:27:35 -0500 Subject: [PATCH] added generic get() and add() methods --- sfa/rspecs/elements/element.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) 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 -- 2.43.0