chunks = iter(['<root><el a="1" b=', '"2"><sub c="', '3">test</sub',
    '></el><el d=', '"4" e="5"></', 'el>', '</root>'])


class Source(object):

    def read(self, size):
        return next(chunks)
for event, elem in ET.iterparse(Source(), events=('end',)):
    if elem.tag == 'el':
        pass
Python: анализ неполных фрагментов XML