Upstream version 11.39.244.0
[platform/framework/web/crosswalk.git] / src / xwalk / app / tools / android / handle_xml.py
index e9898b5..b9fe761 100755 (executable)
@@ -39,3 +39,36 @@ def AddElementAttributeAndText(doc, node, name, value, data):
   text = doc.createTextNode(data)
   item.appendChild(text)
   root.appendChild(item)
+
+
+def CompareNodes(node1, node2):
+  if node1.tagName != node2.tagName or node1.attributes is None:
+    return False
+  if node2.attributes is None:
+    return True
+
+  for item in node2.attributes.items():
+    if not item in node1.attributes.items():
+      return False
+  return True
+
+
+def MergeNodes(node1, node2):
+  tmp_node_list = []
+  for item2 in node2.childNodes:
+    if item2.nodeType != item2.ELEMENT_NODE:
+      continue
+    item1 = None
+    for tmp_item in node1.childNodes:
+      if tmp_item.nodeType != tmp_item.ELEMENT_NODE:
+        continue
+      if CompareNodes(tmp_item, item2):
+        item1 = tmp_item
+        break
+    if item1 is not None:
+      MergeNodes(item1, item2)
+    else:
+      tmp_node_list.append(item2)
+
+  for item in tmp_node_list:
+    node1.appendChild(item)