次のコードを使用して、必要な場所にsubElementを追加できます。機能的に機能します。読みやすさのために、私はitem.append
が新しいサブ要素を挿入する方法を書式化したいと思います。 マイコード:ElementTreeを使用して新しいSubElementを追加および書式設定する
import xml.etree.ElementTree as ET
tree = ET.parse(file.xml)
root = tree.getroot()
for items in root.iter('items'):
item = ET.SubElement(items, 'item')
item.append((ET.fromstring('<item>cat</item>')))
tree.write('output.xml')
XMLファイル:
<interface>
<object>
<items>
<item>dog</Item>
</items>
</object>
</interface>
予想される出力:
<interface>
<object>
<items>
<item>dog</item>
<item>cat</item>
</items>
</object>
</interface>
実際の出力:
<interface>
<object>
<items>
<item>dog</item>
<item><item>cat</item></item></items>
</object>
</interface>
通常、私はどのようにそれを気にしないだろうoutput.xmlファイルをフォーマットします。しかし、私はwhile
ループに<item>
subElementsを追加しています。したがって、4つまたは5つの追加があると、コードは読みやすくするためにちょっと邪魔になります。
私はこれに関する多くの類似の質問を見てきましたが、回答がないか、具体的には私がしようとしていることには適用されません。私は事前に任意の助けに感謝
import xml.etree.ElementTree as ET
tree = ET.parse(file.xml)
root = tree.getroot()
while True:
item_add = input("Enter item to add: 'n")
item_string = '<item>'
item_string += item_add
item_string += '</item>'
for items in root.iter('items'):
item = ET.SubElement(items, 'item')
item.append((ET.fromstring(item_string)))
tree.write('output.xml')
#Code asking for more input, if none break out of loop
:
は、ここでそれがより明確化を追加するだけで包み、whileループでは私のコードです。
これは私が必要としていたものです。ありがとうございます! – Brosta
@Brosta ...あなたは大歓迎です。ハッピーコーディング! – Parfait