X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=sfa%2Futil%2Fxml.py;h=47de319c8a023527ddd05abefdf34d3bd0fc7b61;hb=62e59312b204790cea314a0bc678c0fcae7fba0a;hp=bdaf539652bfb2b639d7a9426768bdc6ac5cf4a1;hpb=036184908cd764a2913e68d65d6084b46336b776;p=sfa.git diff --git a/sfa/util/xml.py b/sfa/util/xml.py index bdaf5396..47de319c 100755 --- a/sfa/util/xml.py +++ b/sfa/util/xml.py @@ -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) @@ -65,6 +68,9 @@ class XmlNode: parent = element.getparent() parent.remove(element) + def remove(element): + self.node.remove(element) + def set(self, key, value): self.node.set(key, value) @@ -73,7 +79,10 @@ class XmlNode: 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)