Можно ли ускорить парсинг ElementTree?
С помощью ElementTree разбираю xml-файлы разного размера примерно по такому принципу:
with open('filename.xml') as file:
xml = ElementTree.fromstring(file.read())
offers = xml.findall('offer')
for offer in offers:
do_smthng(offer)
Заметил, что чем больше элементов содержит offers, тем меньше итераций в секунду происходит. Есть ли какие-то способы парсить файлы так, чтобы скорость не зависела от размера объекта offers? И есть ли вообще какие-нибудь рекомендации по ускорению парсинга xml?
Ответы (1 шт):
Автор решения: Sergey Gornostaev
→ Ссылка
ElementTree - это DOM-парсер, они плохо подходят для больших файлов. Для больших объёмов предназначены SAX-парсеры.