python xml.etree.ElementTree anexado ao subelemento
Estou tentando usar xml.etree.ElementTree para analisar um arquivo xml, localizar uma marca específica, anexar um filho a essa marca, anexar outro filho à marca recém-criada e adicionar texto ao último filho.
Meu XML:
<root>
<a>
<b>
<c>text1</c>
</b>
<b>
<c>text2</c>
</b>
</a>
</root>
XML desejado:
<root>
<a>
<b>
<c>text1</c>
</b>
<b>
<c>text2</c>
</b>
<b>
<c>text3</c>
</b>
</a>
</root>
Código atual:
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
Isso parece funcionar, exceto que 'c' acrescenta como filho de 'a' e não de 'b'
Igual a:
<root>
<a>
<b>
<c>test1</c>
</b>
<b>
<c>test2</c>
</b>
<b /><c/></a>
</root>
Além disso, como adiciono texto ao elemento recém-criado 'c'? Eu poderia percorrer até encontrar a tag 'c' que não tem texto, mas deve haver uma maneira melhor.