X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=src%2Fxwalk%2Fapp%2Ftools%2Fandroid%2Fhandle_xml.py;h=b9fe76182b4b683fb3adfa05bb20ee3130436cfa;hb=669bbc0a54393464248e6bac22558cda42a9a350;hp=e9898b57b5d02d29f23f6eaf3f787f95ab6b56a5;hpb=9eb529aedf653fc95f58f99ebfe353627642a104;p=platform%2Fframework%2Fweb%2Fcrosswalk.git diff --git a/src/xwalk/app/tools/android/handle_xml.py b/src/xwalk/app/tools/android/handle_xml.py index e9898b5..b9fe761 100755 --- a/src/xwalk/app/tools/android/handle_xml.py +++ b/src/xwalk/app/tools/android/handle_xml.py @@ -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)