From: Tony Mack Date: Thu, 10 Nov 2011 17:47:41 +0000 (-0500) Subject: Merge branch 'master' of ssh://git.planet-lab.org/git/sfa X-Git-Tag: sfa-1.1-3~74 X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;h=62e59312b204790cea314a0bc678c0fcae7fba0a;hp=-c;p=sfa.git Merge branch 'master' of ssh://git.planet-lab.org/git/sfa --- 62e59312b204790cea314a0bc678c0fcae7fba0a diff --combined sfa/util/xml.py index 4baea4d2,bdaf5396..47de319c --- a/sfa/util/xml.py +++ b/sfa/util/xml.py @@@ -40,16 -40,13 +40,16 @@@ class XpathFilter class XmlNode: def __init__(self, node, namespaces): self.node = node + self.text = node.text self.namespaces = namespaces self.attrib = node.attrib + def xpath(self, xpath, namespaces=None): if not namespaces: namespaces = self.namespaces - return self.node.xpath(xpath, namespaces=namespaces) + elems = self.node.xpath(xpath, namespaces=namespaces) + return [XmlNode(elem, namespaces) for elem in elems] def add_element(name, *args, **kwds): element = etree.SubElement(name, args, kwds) @@@ -68,9 -65,6 +68,9 @@@ parent = element.getparent() parent.remove(element) + def remove(element): + self.node.remove(element) + def set(self, key, value): self.node.set(key, value) @@@ -79,10 -73,7 +79,10 @@@ def unset(self, key): del self.node.attrib[key] - + + def iterchildren(self): + return self.node.iterchildren() + def toxml(self): return etree.tostring(self.node, encoding='UTF-8', pretty_print=True) @@@ -100,7 -91,7 +100,7 @@@ class XML self.parse_xml(xml) if isinstance(xml, XmlNode): self.root = xml - self.namespces = xml.namespaces + self.namespaces = xml.namespaces elif isinstance(xml, etree._ElementTree) or isinstance(xml, etree._Element): self.parse_xml(etree.tostring(xml))