Merge branch 'master' of ssh://git.planet-lab.org/git/sfa
[sfa.git] / sfa / util / xml.py
index bdaf539..47de319 100755 (executable)
@@ -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)