0 Pluspunkte 0 Minuspunkte

Ich möchte ein Element in einer XML Datei ersetzen.

import xml.etree.ElementTree as ET

tree = ET.parse('Person.xml')
root = tree.getroot()

for element in root.findall("Person"):
    first_name = element.find('FirstName').text
    last_name = element.find('LastName').text
    if first_name == 'Willi':
        last_name = "Wills Wissen"

tree.write('Person.xml')

Wenn ich die Textdatei in einem Editor geöffnet habe und das Script ausführe bekomme ich im Texteditor eine Benachrichtigung das die Datei verändert wurde und neu eingelesen werden muss aber der Inhalt ändert sich nicht. Was kann das sein?

von  

1 Antwort

0 Pluspunkte 0 Minuspunkte

In der Zeile

last_name = element.find('LastName').text

speicherst du den Wert, der im Feld "LastName" steht in einer Variable. Das ist ein einfacher String. Um den Text zu ändern benötigst du eine Referenz auf das Objekt selbst.

for element in root.findall("Person"):
    first_name = element.find('FirstName').text
    last_name = element.find('LastName')
    
    if first_name == 'Willi':
        last_name.text = "Wills Wissen"

von