Мне нужно избегать создания двойных ветвей в дереве xml при разборе текстового файла. Скажем, текстовый файл выглядит следующим образом (порядок строк является случайным):Создание дерева xml из текстового файла с помощью Python
branch1: branch11: message11
branch1: branch12: message12
branch2: branch21: message21
branch2: branch22: message22
Таким образом, полученное дерево xml должно иметь корень с двумя ветвями. Обе эти ветви имеют две дочерние части. Код Python я использую, чтобы разобрать этот текстовый файл выглядит следующим образом:
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')
Проблема с этим кодом в том, что филиал в XML-дереве создаются с каждой строкой из текстового файла.
Любые предложения, как избежать создания другой ветки в дереве xml, если ветка с этим именем уже существует?
Спасибо, этот, а также другие ответы работают нормально, но я буду придерживаться defaultdict, поскольку на самом деле текстовые и XML-файлы будут довольно большими. – bitman