1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| >>> from pprint import pprint as pp
>>> from xml.etree.ElementTree import iterparse
>>>
>>> def do_it(current,iterateur):
sequence = [(current.tag,current.text.strip())]
for event, elem in iterateur:
if event == 'end' and elem.tag == current.tag:
return sequence
elif event == 'start':
sequence.append((elem.tag,elem.text.strip()))
>>>
>>> iterateur = iterparse('bouteilles.xml',('start','end'))
>>> racine = False
>>>
>>> for event,elem in iterateur:
if racine == False:
racine = True
elif event == 'start':
sequence = do_it(elem,iterateur)
print "nouvelle sequence :",
pp(sequence)
nouvelle sequence :[('info', 'Liste de bouteilles')]
nouvelle sequence :[('bouteille', ''), ('type', 'eau'), ('marque', 'vittel')]
nouvelle sequence :[('bouteille', ''),
('type', 'alcool'),
('marque', 'martini'),
('volume', '0.75')]
nouvelle sequence :[('bouteille', ''), ('type', 'eau'), ('marque', 'evian')]
>>> |