so. mit eurer hilfe bin ich schonmal sehr weit gekommen. jetzt stehe ich vor einem anderen problem:
mit
Code: Alles auswählen
for verse_child in verse.getchildren():
if type(verse_child.tail) != type(None):
verse.text = verse.text + verse_child.tail
verse.remove(verse_child)
habe ich die subs gelöscht und ggf. die tails dem text angehängt.
wenn jetzt in meinem xml file ein element habe, das wie dieses aussieht:
Code: Alles auswählen
<parent>Dies ist ein Text <children>Hinweis: Text ist doof</children> mit <children>einem zweiten</children> kind</parent>
wird mit der funktion oben daraus
das ist ja zum mäusemelken!
hoffe jemand von euch hat noch eine idee, warum das so passiert.
EDIT:
komischerweise funktioniert es wenn ich die ganze sachen händisch in der konsole durchlaufen lasse:
Code: Alles auswählen
>>> a = ET.fromstring("<parent>Dies ist ein Text <children>Hinweis: Text ist doof</children> mit <children>einem zweiten</children> kind</parent>")
>>> ET.dump(a)
<parent>Dies ist ein Text <children>Hinweis: Text ist doof</children> mit <children>einem zweiten</children> kind</parent>
>>> a.getchildren()
[<Element children at 12bc998>, <Element children at 12bcc68>]
>>> a.getchildren()[0].tail
' mit '
>>> a.text = a.text + a.getchildren()[0].tail
>>> a.text
'Dies ist ein Text mit '
>>> a.remove(a.getchildren()[0])
>>> ET.dump(a)
<parent>Dies ist ein Text mit <children>einem zweiten</children> kind</parent>
>>> a.text = a.text + a.getchildren()[0].tail
>>> a.text
'Dies ist ein Text mit kind'
>>> a.remove(a.getchildren()[0])
>>> ET.dump(a)
<parent>Dies ist ein Text mit kind</parent>
>>>