ich beschäftige mich zum ersten Mal mit dem Parsen von XML mittels xml.etree.ElementTree und habe dabei ein für mich merkwürdiges Verhalten der Methode Element.remove() festgestellt. Ich illustriere das mal schnell an einem kleinen Beispiel (Python 2.6):
Code: Alles auswählen
>>> import xml.etree.ElementTree as ET
>>> xml_string = """
... <target>
... Hier steht Text. <head>Text</head> Noch mehr Text.
... </target>"""
>>> target = ET.XML(xml_string)
>>> target
<Element target at 3c3620>
>>> head = target.find('head')
>>> head
<Element head at 3c3800>
>>> # An dieser Stelle sollen nur die head-Tags samt Inhalt entfernt werden, aber es wird auch noch der Text dahinter entfernt!?
>>> target.remove(head)
>>> ET.dump(target)
<target>
Hier steht Text. </target>
>>>
2. Wie lässt sich dieses Verhalten vermeiden und wie kann ich nur die head-Tags samt Inhalt entfernen und den Rest erhalten?
Herzlichen Dank!
PS: Falls ihr mir einen anderen xml-Parser empfehlen wollt -> Ich kann und darf nur mit der Standardbibliothek arbeiten.