Je dois éviter de créer des branches doubles dans une arborescence xml lors de l'analyse d'un fichier texte. Disons que le fichier texte est le suivant (l'ordre des lignes est aléatoire):Création d'une arborescence xml à partir d'un fichier texte avec Python
Branch1: branch11: message11
Branch1: branch12: message12
succursale2: branch21: message21
succursale2: branch22: message22
Donc l'arbre xml résultant devrait avoir une racine avec deux branches. Ces deux branches ont deux sous-branches. Le code Python que j'utilise pour analyser ce fichier texte est le suivant:
import string
fh = open ('xmlbasic.txt', 'r')
allLines = fh.readlines()
fh.close()
import xml.etree.ElementTree as ET
root = ET.Element('root')
for line in allLines:
tempv = line.split(':')
branch1 = ET.SubElement(root, tempv[0])
branch2 = ET.SubElement(branch1, tempv[1])
branch2.text = tempv[2]
tree = ET.ElementTree(root)
tree.write('xmlbasictree.xml')
Le problème avec ce code est, qu'une branche dans l'arbre XML est créé avec chaque ligne du fichier texte.
Des suggestions pour éviter de créer une autre branche dans l'arborescence XML si une branche portant ce nom existe déjà?
Merci, ceci et aussi d'autres réponses fonctionnent très bien, mais je vais m'en tenir à defaultdict comme en réalité les fichiers texte et xml être plutôt gros. – bitman