我需要避免在解析文本文件時在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