From: Tony Mack Date: Mon, 23 May 2011 16:09:39 +0000 (-0400) Subject: add remove_element() method X-Git-Tag: sfa-1.0-22~20 X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;h=1073841f34611aedb6758b2cebed4df5c5e57812;p=sfa.git add remove_element() method --- diff --git a/sfa/rspecs/rspec.py b/sfa/rspecs/rspec.py index bf3db646..afc97bbf 100755 --- a/sfa/rspecs/rspec.py +++ b/sfa/rspecs/rspec.py @@ -90,6 +90,21 @@ class RSpec: if opt.text == value: elem.remove(opt) + def remove_element(self, element_name, root_node = None): + """ + Removes all occurences of an element from the tree. Start at + specified root_node if specified, otherwise start at tree's root. + """ + if not root_node: + root_node = self.xml + + elements = root_node.xpath('//rspecv2:%s | //%s' % (element_name, element_name), \ + self.namespaces) + for element in elements: + parent = element.getparent() + parent.remove(element) + + def merge(self, in_rspec): pass