Hallo,
gegeben sei D11.2 und eine Routine in der ich eine
XML-Datei frisch erzeuge.
Delphi-Quellcode:
procedure TMyClass.SaveToXML(const FileName : string);
LDocument: IXMLDocument;
LOutput, LNodeElement: IXMLNode;
begin
LDocument := TXMLDocument.Create(nil);
LDocument.Active := true;
LDocument.Options := [doNodeAutoIndent];
LDocument.DocumentElement := LDocument.CreateNode('DCCProject', ntElement, '');
LOutput := LDocument.DocumentElement.AddChild('OutputSettings', -1);
LNodeElement := LOutput.AddChild('ScriptOutputPath', -1);
LNodeElement.Text := 'My text';
LNodeElement := LDocument.ChildNodes.FindNode('OutputSettings');
if Assigned(LNodeElement) then
sleep(100);
Die Frage nun, warum er das zum testen eingebaute Sleep(100) nicht erreicht.
Liegt es daran, dass die
XML-Datei zu dem Zeitpunkt noch nicht gespeichert wurde?
Kontext: ich spiele gerade mit Attributen rum und wie ich die evtl. nutzen könnte
um automatisch diverse Felder passend in die
XML-Datei zu speichern. Dabei sollen
einige der Felder direkt unter <OutputSettings> landen und nicht jedes Mal einen neuen
<OutputSettings> Knoten erzeugen...
Bei manueller Ausgabe klappt das natürlich, bei der automatischen, wo beim ersten Mal
der <OutputSettings> Knoten erzeugt werden muss bisher nicht. Da erzeut er den für jedes zu speichernde Feld wieder...
Grüße
TurboMagic