slixmpp/tests/xmlcompare.py

29 lines
765 B
Python
Raw Normal View History

from xml.etree import cElementTree as ET
def comparemany(xmls):
xml1 = xmls[0]
if type(xml1) == type(''):
xml1 = ET.fromstring(xml1)
for xml in xmls[1:]:
xml2 = xml
if type(xml2) == type(''):
xml2 = ET.fromstring(xml2)
if not compare(xml1, xml2): return False
return True
def compare(xml1, xml2):
if xml1.tag != xml2.tag:
return False
if xml1.attrib != xml2.attrib:
return False
for child in xml1:
child2s = xml2.findall("%s" % child.tag)
if child2s is None:
return False
found = False
for child2 in child2s:
found = compare(child, child2)
if found: break
if not found: return False
return True