AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

XML FIndNode Frage

Ein Thema von TurboMagic · begonnen am 15. Nov 2022 · letzter Beitrag vom 15. Nov 2022
Antwort Antwort
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.931 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
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.886 Beiträge
 
Delphi 12 Athens
 
#2

AW: XML FIndNode Frage

  Alt 15. Nov 2022, 21:34
vermutlich irgendwie so
Delphi-Quellcode:
LDocument.RootNode.FindNode('OutputSettings');
LDocument.DocumentElement.FindNode('OutputSettings');

// weil ;)
LDocument.ChildNodes.FindNode('DCCProject').ChildNodes.FindNode('OutputSettings');
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
TurboMagic

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

AW: XML FIndNode Frage

  Alt 15. Nov 2022, 22:23
Danke! Die letzte Codezeile funktioniert!
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:49 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz