From: Tony Mack Date: Mon, 26 Jan 2009 16:27:21 +0000 (+0000) Subject: added getDictsByTagName method X-Git-Tag: sfa-0.9-0@14641~721 X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;h=0ba7dd01124dd81fc4c0ea0758288123abbc2e69;p=sfa.git added getDictsByTagName method --- diff --git a/util/rspec.py b/util/rspec.py index 6c6c682d..88df71ef 100644 --- a/util/rspec.py +++ b/util/rspec.py @@ -45,7 +45,7 @@ class Rspec(): node[attr] = attributeDom.attributes.get(attr).value return node - + def toDict(self, nodeDom = None): """ convert this rspec to a dict and return it. @@ -134,5 +134,24 @@ class Rspec(): return rootNode def parseDict(self, rdict, include_doc = True): + """ + Convert a dictionary into a dom object and store it. + """ self.rootNode = self.dict2dom(rdict, include_doc) + + def getDictsByTagName(self, tagname, dom = None): + """ + Search the dom for all elements with the specified tagname + and return them as a list of dicts + """ + if not dom: + dom = self.rootNode + dicts = [] + doms = dom.getElementsByTagName(tagname) + dictlist = [self.toDict(d) for d in doms] + for item in dictlist: + for value in item.values(): + dicts.append(value) + return dicts +