Einzelnen Beitrag anzeigen

TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.825 Beiträge
 
Delphi 12 Athens
 
#1

XML FIndNode Frage

  Alt 15. Nov 2022, 21:28
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
  Mit Zitat antworten Zitat