В документации для ElementTree сказано, что findall
возвращает элементы в порядке документа.
Быстрый тест показывает правильное поведение:
import xml.etree.ElementTree as et
xmltext = """
<root>
<number>1</number>
<number>2</number>
<number>3</number>
<number>4</number>
</root>
"""
tree = et.fromstring(xmltext)
for number in tree.findall('number'):
print number.text
Результат:
1
2
3
4
Было бы полезно увидеть документ, который вы анализируете.
Обновление:
Используя предоставленные вами исходные данные:
from __future__ import with_statement
import xml.etree.ElementTree as et
with open('xmldata.xml', 'r') as f:
xmldata = f.read()
tree = et.fromstring(xmldata)
for revision in tree.findall('.//{http://www.mediawiki.org/xml/export-0.5/}revision'):
print revision.find('{http://www.mediawiki.org/xml/export-0.5/}text').text[0:10].encode('utf8')
Результат:
‘The Mind
{{db-spam}
‘The Mind
'''The Min
<!-- Pleas
В том же порядке, в каком они отображаются в документе.