added append() and iterchildern() to XML class
[sfa.git] / sfa / util / xml.py
index cc23e5f..9d5f52c 100755 (executable)
@@ -51,8 +51,8 @@ class XmlNode:
         elems = self.node.xpath(xpath, namespaces=namespaces)
         return [XmlNode(elem, namespaces) for elem in elems]
     
-    def add_element(self, name, **kwds):
-        element = etree.SubElement(self.node, name, **kwds)
+    def add_element(self, tagname, **kwds):
+        element = etree.SubElement(self.node, tagname, **kwds)
         return XmlNode(element, self.namespaces)
 
     def append(self, elem):
@@ -61,6 +61,9 @@ class XmlNode:
         else:
             self.node.append(elem)
 
+    def getparent(self):
+        return XmlNode(self.node.getparent(), self.namespaces)
+
     def remove_elements(name):
         """
         Removes all occurences of an element from the tree. Start at
@@ -77,6 +80,11 @@ class XmlNode:
     def remove(element):
         self.node.remove(element)
 
+    def get(self, key, *args):
+        return self.node.get(key, *args)
+
+    def items(self): return self.node.items()
+
     def set(self, key, value):
         self.node.set(key, value)
     
@@ -209,7 +217,6 @@ class XML:
             node = self.root
         node.remove_attribute(name) 
         
-
     def add_element(self, name, **kwds):
         """
         Wrapper around etree.SubElement(). Adds an element to 
@@ -260,6 +267,12 @@ class XML:
             attrs['child_nodes'] = list(elem)
         return attrs
 
+    def append(self, elem):
+        return self.root.append(elem)
+
+    def iterchildren(self):
+        return self.root.iterchildren()    
+
     def merge(self, in_xml):
         pass