So ganz zu Herzen genommen hattest du dir meine
Kritik damals nicht, was?
Warum
Zitat von
tobu:
Delphi-Quellcode:
case CBAuthor.ItemIndex of
0: Knoten.Attributes['Author'] := CBAuthor.Items.Strings[0];
1: Knoten.Attributes['Author'] := CBAuthor.Items.Strings[1];
2: Knoten.Attributes['Author'] := CBAuthor.Items.Strings[2];
end;
und nicht gleich:
Knoten.Attributes['Author'] := CBAuthor.Items[CBAuthor.ItemIndex];
Diese eine Zeile macht genau das gleiche wie deine case-Anweisung.
Dass es übrigens nicht funktioniert, liegt daran:
Zitat:
Delphi-Quellcode:
XMLDoc.LoadFromFile(XMLDoc.FileName);
XMLDoc.Options := [doNodeAutoIndent];
XMLDoc.SaveToFile(XMLDoc.FileName);
Dass da noch was dazwischen steht, interessiert nicht, weil es keinen Einfluss auf das Dokument hat, das du hier komplett neu lädst. Du musst folgendes überlegen: Du änderst zwar die Eigenschaften des Knotens, aber wo ist dabei die Verbindung zu XMLDoc?
Ich nehme mal an, dass du die
XML-Datei schon beim Start deines Programms lädst. In dem Fall enthält XMLDoc das Dokument. Wenn du jetzt den Knoten in der o.g. Prozedur änderst, dann ändert sich dadurch der entsprechende Knoten im schon geladenen Dokument -
sofern er vorher auf irgendeine Art und Weise aus diesem Dokument ermittelt wurde (
XPath?). Wenn das alles zutrifft, dann brauchst du das Dokument nicht neu laden. Speichere es einfach, und die Datei sollte die neuen Eigenschaften enthalten.