python xml.programme etree.ElementTree ajouter à la sous-élément

Je suis en train d'utiliser le format xml.programme etree.ElementTree pour parser un fichier xml, trouver une balise spécifique, ajouter un enfant de la balise, ajouter un autre enfant à la nouvelle balise et ajouter du texte pour le dernier enfant.

Mon XML:

<root>
<a>
    <b>
      <c>text1</c>
    </b>
    <b>
      <c>text2</c>
   </b>
</a>
</root>    

XML souhaitée:

<root>
<a>
    <b>
      <c>text1</c>
    </b>
    <b>
      <c>text2</c>
   </b>
    <b>
      <c>text3</c>
   </b>
</a>
</root>

Code actuel:

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

Cela semble fonctionner sauf le 'c' ajoute en tant qu'enfant de " un "au lieu de "b"

Comme suit:

<root>
<a>
    <b>
      <c>test1</c>
    </b>
    <b>
      <c>test2</c>
    </b>
  <b /><c/></a>
</root>

Aussi, comment puis-je ajouter du texte à la fonction nouvellement créée de l'élément "c"? J'ai pu parcourir jusqu'à ce que je trouve le tag 'c' qui n'a pas de texte, mais il doit y avoir une meilleure façon.

OriginalL'auteur andrsnn | 2014-03-31