Perhaps you can use ET.iterparse to gradually analyze XML fragments:
import xml.etree.ElementTree as ET
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':
print(elem)
<Element 'el' at 0xb744f6cc>
<Element 'el' at 0xb744f84c>
ET.iterparse io.BytesIO StringIO. , read. , , , ET.iterparse .
, ET.iterparse (, read(16384)). , , , , - , . , ( ).