Signed-off-by: Chris Evich<[email protected]>
---
 client/shared/xml_utils.py |   32 ++++++++++++++++++++++++++++++++
 1 files changed, 32 insertions(+), 0 deletions(-)

diff --git a/client/shared/xml_utils.py b/client/shared/xml_utils.py
index 966ce4e..9cd0466 100644
--- a/client/shared/xml_utils.py
+++ b/client/shared/xml_utils.py
@@ -192,6 +192,38 @@ class XMLTreeFile(ElementTree.ElementTree, XMLBackup):
         self.flush()


+    def get_parent_map(self, element=None):
+        """
+        Return a child to parent mapping dictionary
+
+        param: element: Search only below this element
+        """
+        # Comprehension loop over all children in all parents
+        return dict((c, p) for p in self.getiterator(element) for c in p)
+
+
+    def get_parent(self, element, relative_root=None):
+        """
+        Return the parent node of an element or None
+
+        param: element: Element to retrieve parent of
+        param: relative_root: Search only below this element
+        """
+        try:
+            return self.get_parent_map(relative_root)[element]
+        except KeyError:
+            return None
+
+
+    def remove(self, element):
+        """
+        Removes a matching subelement.
+
+        @param: element: element to be removed.
+        """
+        self.get_parent(element).remove(element)
+
+
     def write(self, filename=None, encoding="UTF-8"):
         """
         Write current XML tree to filename, or self.name if None.
-- 1.7.1

--
Best Regards
Yu Mingfei

_______________________________________________
Autotest-kernel mailing list
[email protected]
https://www.redhat.com/mailman/listinfo/autotest-kernel

Reply via email to