Fichier XML avec plusieurs balises identiques
Bonjour,
Je dispose d'un fichier de plusieurs milliers de lignes dont chacune d'elles est composé de données XML.
Ex d'une ligne: donnée 1, donnée 2, donnée 3,
Code:
<?xml version="1.0" encoding="UTF-8"?><root>données</root>
Tout d'abord j'aurais souhaité avoir la confirmation que xml.etree.ElementTree ne peut prendre en charge que des fichiers et que je ne peux pas l'utiliser avec l'indice de la liste ou une variable afin d'éviter la création d'un fichier. J'ai essayé mais sans résultat mais peut être qu'il y a une méthode que je ne connais pas.
Mon autre difficulté est que mon fichier XML a plusieurs balises identiques
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| <?xml version="1.0" encoding="UTF-8"?>
<root>
<data>
<pays>France</pays>
<langue>Français</langue>
<monnaie>Euro</monnaie>
</data>
<data>
<pays>Allemagne</pays>
<langue>Allemand</langue>
<monnaie>Euro</monnaie>
</data>
<data>
<pays>Italie</pays>
<langue>Italien</langue>
<monnaie>Euro</monnaie>
</data>
<data>
<pays>Espagne</pays>
<langue>Espagnol</langue>
<monnaie>Euro</monnaie>
</data>
</root> |
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| import xml.etree.ElementTree as ET
root = ET.parse("Paystest.xml").getroot()
for item in root.iter("pays"):
pays = item.text
print(pays)
for lang in root.iter("langue"):
langue = lang.text
print(langue)
for monn in root.iter("monnaie"):
monnaie = monn.text
print(monnaie) |
A la sortie j'ai ça comme résultat:
Citation:
France
Allemagne
Italie
Espagne
Français
Allemand
Italien
Espagnol
Euro
Euro
Euro
Euro
Je souhaiterais avoir les données regroupées par bloc:
Citation:
France
Français
Euro
Allemagne
Allemand
Euro
Italie
Italien
Euro
Espagne
Espagnol
Euro
Je voudrais savoir si c'est possible d'arriver à ce résultat.
Merci