我需要避免在解析文本文件时在xml树中创建双分支。比方说,文本文件如下(行的顺序是随机的):从Python文本文件创建xml树
BRANCH1:branch11:消息11
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 2010-09-21 11:54:26