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