X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;ds=sidebyside;f=sfa%2Futil%2Frspec.py;h=903365cecb68d6ae2d1cd8458f42947c9c375be8;hb=49ce8dc4cc0f2497bb4bf4523dcd12012cf1e13f;hp=d73bbe71bc05f005e12bcec9bac544bbacb96a1e;hpb=d97f9189c67a75e1562e3b4e37075d7c5c8e2baa;p=sfa.git diff --git a/sfa/util/rspec.py b/sfa/util/rspec.py index d73bbe71..903365ce 100644 --- a/sfa/util/rspec.py +++ b/sfa/util/rspec.py @@ -91,6 +91,8 @@ class Rspec: if (nodeDom.hasChildNodes()): childdict={} + for attribute in nodeDom.attributes.keys(): + childdict = self.appendToDictOrCreate(childdict, attribute, nodeDom.getAttribute(attribute)) for child in nodeDom.childNodes[:-1]: if (child.nodeValue): siblingdict = self.appendToDictOrCreate(siblingdict, curNodeName, child.nodeValue) @@ -100,17 +102,16 @@ class Rspec: child = nodeDom.childNodes[-1] if (child.nodeValue): siblingdict = self.appendToDictOrCreate(siblingdict, curNodeName, child.nodeValue) + if (childdict): + siblingdict = self.appendToDictOrCreate(siblingdict, curNodeName, childdict) else: siblingdict = self.toGenDict(child, siblingdict, childdict, curNodeName) - - # Keep the attributes separate from text nodes - attrdict={} - for attribute in nodeDom.attributes.keys(): - attrdict = self.appendToDictOrCreate(attrdict, attribute, nodeDom.getAttribute(attribute)) - if (attrdict): - self.appendToDictOrCreate(siblingdict, curNodeName, attrdict) else: - self.appendToDictOrCreate(siblingdict, curNodeName, []) + childdict={} + for attribute in nodeDom.attributes.keys(): + childdict = self.appendToDictOrCreate(childdict, attribute, nodeDom.getAttribute(attribute)) + + self.appendToDictOrCreate(siblingdict, curNodeName, childdict) if (parentdict is not None): parentdict = self.appendToDictOrCreate(parentdict, parent, siblingdict) @@ -273,7 +274,7 @@ class Rspec: """ Convert a dictionary into a dom object and store it. """ - self.rootNode = self.dict2dom(rdict, include_doc) + self.rootNode = self.dict2dom(rdict, include_doc).childNodes[0] def getDictsByTagName(self, tagname, dom = None):