向python elemen中新创建的元素添加子元素

2024-09-29 02:23:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试使用Python中的elementtree基于CSV文件中的数据,将以下子树添加到xml文件中的元素“druges”:

<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()据我所知,它需要元素是对父元素的直接引用。如果我在添加第二种药物时使用.find(),我可能会得到第一种药物的参考。在

我在做这件事的时候循环浏览CSV的每一行,所以我宁愿逐个元素地添加元素,而不是在元素druges上附加一个子树。在


Tags: 文件csv数据函数元素unitxml药物
1条回答
网友
1楼 · 发布于 2024-09-29 02:23:27

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

相关问题 更多 >