| from xml.dom import minidom |
| import sys |
| import getopt |
| |
| HELP = """ |
| compare_xml.py [ -o file.xml ] |
| -f file.xml |
| -h - help info |
| """ |
| |
| enfile = "en.xml" |
| otherfile = "" |
| |
| try: |
| opts, args = getopt.getopt(sys.argv[1:], "hfo:koz", ["device="]) |
| except getopt.GetoptEror: |
| print HELP |
| sys.stdout.flush() |
| sys.exit(2) |
| |
| for opt, arg in opts: |
| if opt == "-h": |
| print HELP |
| sys.stdout.flush() |
| sys.exit() |
| elif opt == "-o": |
| otherfile = arg |
| elif opt == "-f": |
| enfile = arg |
| |
| if otherfile == "": |
| print HELP |
| exit() |
| |
| print "Comparing %s and %s" % (enfile, otherfile) |
| print "" |
| |
| endoc = minidom.parse(enfile) |
| enstrings = endoc.getElementsByTagName('string') |
| |
| otherdoc = minidom.parse(otherfile) |
| otherstrings = otherdoc.getElementsByTagName('string') |
| |
| for ens in enstrings: |
| found = False |
| for others in otherstrings: |
| if ens.attributes['name'].value == others.attributes['name'].value: |
| found = True |
| break |
| if found == False: |
| print "'%s' present in %s and not in %s" % (ens.attributes['name'].value, enfile, otherfile) |
| |
| print "" |
| |
| for others in otherstrings: |
| found = False |
| for ens in enstrings: |
| if ens.attributes['name'].value == others.attributes['name'].value: |
| found = True |
| break |
| if found == False: |
| print "'%s' present in %s and not in %s" % (others.attributes['name'].value, otherfile, enfile) |