2013-05-01 113 views
0

我想下面的子樹中,根據在CSV文件中的數據在Python中使用ElementTree的XML文件添加到一個元素「藥品」:添加子元素給新創建的元素在Python的ElementTree

<Drug> 
    <DrugID>1<DrugID> 
    <Dose>40</Dose> 
    <Unit>mg</Unit> 
</Drug> 
<Drug> 
    <DrugID>3<DrugID> 
    <Dose>1</Dose> 
    <Unit>g</Unit> 
</Drug> 

事情一旦我創建了Drug元素,我如何引用它來使用append函數?據我所知,它需要的元素是直接引用父項。如果我在添加第二種藥物時使用.find(),我可能會提到第一種藥物。

我在循環播放每一行CSV的同時這樣做,這就是爲什麼我寧願添加元素的元素,而不是添加一個子樹的元素藥物。

回答

1

使用SubElement factory添加新元素,它更容易使用:

from xml.etree import ElementTree as ET 

# drugs is a reference to your <Drugs> element 

for row in csvreader: 
    drug = ET.SubElement(drugs, 'Drug') 
    ET.SubElement(drug, 'DrugID').text = row[0] 
    ET.SubElement(drug, 'Dose').text = row[1] 
    ET.SubElement(drug, 'Unit').text = row[2] 

,我假定列1 - 3藥物ID,劑量和單位,按要求您的CSV文件調整。

調用SubElement()創建該元素,將其添加到父項並返回新創建的元素以供進一步處理。

+0

非常感謝!解決了! – 2013-05-01 17:07:08

相關問題