0

CSV ファイルのデータに基づいて、Python で elementtree を使用して、xml ファイルの要素 'Drugs' に次のサブツリーを追加しようとしています。

<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()私が理解しているように、要素を親への直接参照にする必要があります。2 番目の薬を追加するときに使用.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 に答える