0

我正在尝试根据 CSV 文件中的数据使用 Python 中的 elementtree 将以下子树添加到 xml 文件中的元素“药物”:

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

问题是一旦我创建了 Drug 元素,我如何引用它来使用 append 函数?element.append()据我了解,它需要 element 直接引用父级。如果我.find()在添加第二种药物时使用,我可能会得到第一种药物的参考。

我在执行此操作时循环浏览 CSV 的每一行,这就是为什么我宁愿逐个元素添加而不是向元素 Drugs 附加子树的原因。

4

1 回答 1

1

使用SubElement工厂添加新元素,使用起来更容易:

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()创建元素,将其添加到父元素并返回新创建的元素以供进一步处理。

于 2013-05-01T16:52:09.133 回答