def METHOD_NAME(xml_list):
    """
    Finds the difference between topology XML files, ignoring  ordering and names in "connection" tags
    Iterate through root tag elements
    Create a dictionary with file_dict[tag] = [list of tag objects]
    """
    if len(xml_list) < 2:
        print("Less than two XML files were specified. Exiting.")
        return
    master_tag_dict = {}
    for xml_path in xml_list:
        # Create etree object
        fd = open(xml_path, "r")
        xml_parser = etree.XMLParser(remove_comments=True)
        element_tree = etree.parse(fd, parser=xml_parser)
        fd.close()
        # Internal Parsing
        xml_dict = recursive_xml_parse(element_tree.getroot())
        for tag_obj in xml_dict[2]:
            if tag_obj[0] == "connection":
                tag_obj[1] = []
            pickled_obj = pickle.dumps(tag_obj)
            if pickled_obj not in master_tag_dict:
                # del master_tag_dict[pickled_obj]
                master_tag_dict[pickled_obj] = []
            master_tag_dict[pickled_obj].append(xml_path)
    # Separate by XML path
    tag_to_object = {}  # tag_to_object[xml_path] = [obj]
    for pickled_obj in master_tag_dict:
        if len(master_tag_dict[pickled_obj]) == 1:
            if master_tag_dict[pickled_obj][0] not in tag_to_object:
                tag_to_object[master_tag_dict[pickled_obj][0]] = []
            tag_to_object[master_tag_dict[pickled_obj][0]].append(pickled_obj)
    for xml_path in tag_to_object:
        print(xml_path + "\n")
        # sort pickled obj lists
        tag_to_object[xml_path].sort()
        for pickled_obj in tag_to_object[xml_path]:
            tag_obj = pickle.loads(pickled_obj)
            print(tag_object_to_string(tag_obj))
            print("\n")
        print("\n")