Python l xml iterparse для создания полного дерева - PullRequest
0 голосов
/ 15 января 2020

Я использую пакет запросов и l xml. С запросами я получаю ответ от сервера, который содержит огромные данные xml. Для обработки данных в других частях моей программы я хотел бы создать объект ElementTree со всеми узлами.

Если я использую etree.fromstring, огромная часть xml отсутствует.

Если я записываю данные в файл, как показано в моем коде ниже, файл содержит все элементы.

self.response_code = response.status_code
        if response.ok:
            missing = self.response_code = response.status_code

        if response.ok:

            missing = etree.fromstring(response.content)

            response.raw.decode_content = True      
            with open('temp.xml', 'wb') as file_handle:
                for chunk in response.iter_content(chunk_size=512):
                    if chunk:
                        file_handle.write(chunk)
                        fule_handle.flush()

            events = etree.iterparse('temp.xml', huge_tree=True, events=('end'), encoding='utf-8')

            for event, elem in events:

                if event == 'end':
                    print(etree.tostring(elem, pretty_print=True))

С уважением

h0mebrewer

...