У меня большой документ с элементами XML на немецком языке, root iter возвращает только подмножество документа
root.iter ('tu') находит только 82
import logging
import xml.etree.cElementTree as ET
class Extractor(object):
def _get_iter(self, filename: str):
with open(filename) as objects:
context = ET.iterparse(objects, events=("start", "end"))
index, (event, root) = next(enumerate(context))
return root.iter('tu')
def get_objects(self, filename: str, limit=-1):
found = sum(1 for _ in self._get_iter(filename))
logging.getLogger(__name__).info('found: {}'.format(found))
// found is 82, actual number is millions
alignments = extractor.get_alignments('data/file.tmx', 100000)
обновление: Пример файла tmx: https://pastebin.com/kUFMMjck
обновление: Решено с помощью события и tagname = tu, я полагаю, что это некорректное поведение с root.iter ()