我想使用xml.etree.ElementTree來解析一個xml文件,找到一個特定的標籤,追加一個孩子到該標籤,追加另一個孩子到新創建的標籤,並添加文字給後者的孩子。python xml.etree.ElementTree追加到子元素
我的XML:
<root>
<a>
<b>
<c>text1</c>
</b>
<b>
<c>text2</c>
</b>
</a>
</root>
期望中的XML:
<root>
<a>
<b>
<c>text1</c>
</b>
<b>
<c>text2</c>
</b>
<b>
<c>text3</c>
</b>
</a>
</root>
當前代碼:
import xml.etree.ElementTree as ET
tree = ET.parse('test.xml')
root = tree.getroot()
for x in root.iter():
if (x.tag == 'a'):
ET.SubElement(x, 'b')
ET.SubElement(x, 'c')
#add text
這似乎除了 'c' 的工作追加爲孩子 'A'而不是'b'
Li ke so:
<root>
<a>
<b>
<c>test1</c>
</b>
<b>
<c>test2</c>
</b>
<b /><c/></a>
</root>
另外,如何向新創建的元素'c'添加文本?我可以迭代,直到找到沒有文本的標籤'c',但必須有更好的方法。
如果'a'是一個孩子,然後我需要循環找到'a'? – andrsnn
@ user2210274 nope,那麼就使用'root.find('a')'。 – alecxe
我應該更具體一些,'一個'不是根。我會修改我的問題。 – andrsnn