Um übrigens noch die Frage zu beantworten:
Zitat von
mikenrw:
Delphi-Quellcode:
node1 := root.SelectSingleNode('conceptGrp'); // <-- !!!
node1.AppendChild(xmldoc.CreateElement('languageGrp'));
node1 := root.SelectSingleNode('conceptGrp/languageGrp'); // <-- !!!
node1.AppendChild(xmldoc.CreateElement('language'));
node1 := root.SelectSingleNode('conceptGrp/languageGrp/language'); // <-- !!!
Bitte beachte, dass "node1" durch die Zuweisungen
node1 :=
natürlich nicht mehr auf den <conceptGrp>-Knoten zeigt. Wenn du dann später natürlich weitere Knoten per
Zitat:
node1.AppendChild(xmldoc.CreateElement('language'));
einhängst, wundert mich überhaupt nicht, dass sie im falschen Teil landen.
Du solltest dir also wirklich Gedanken über einen anderen Ansatz machen. Dein momentaner Weg ist zum einen fehlerbehaftet, und bei mehr als 10 Knoten auch noch enorm umständlich. Wenn du schon keine Serialisierung nutzen kannst oder willst (weißt du eigentlich, was das ist?), dann schreibe dir wenigstens Funktionen, die die gewünschten Knoten erstellen und dir vllt. den neu erzeugten Knoten als Ergebnis zurückliefern. Das würde den Code vereinfachen.