AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein XML TXMLDocument kann nicht created werden

TXMLDocument kann nicht created werden

Ein Thema von Ykcim · begonnen am 24. Okt 2024 · letzter Beitrag vom 24. Okt 2024
 
Benutzerbild von himitsu
himitsu

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

AW: TXMLDocument kann nicht created werden

  Alt 24. Okt 2024, 13:54
Delphi-Quellcode:
      XMLDcmnt := TXMLDocument.Create(xmlPfad);
      Try
         XMLDcmnt.LoadFromFile(xmlPfad);
Entweder schon beim Erstellen laden, oder erst später ... beides macht normal eigentlich niemand.
(ich würde den Parameter beim Create weglassen und nur LoadFromFile nutzen)

Und ja, das XMLDcmnt.Free weg und direkt als Interface die Variable. (wenn, dann maximal noch XMLDcmnt := nil; )


PS, bissl Kürzer wäre ReplaceStr, bzw, ReplaceText(XMLDcmnt.FileName, '.zip', '.xml') , aber eigentlich nutzt man doch ein ChangeFileExt(xmlPfad, '.xml') ?




Zitat:
Delphi-Quellcode:
   Finally
      Result:= false;
   End;
Das ergibt immer False ... wolltes du vielleicht ein Except?

Und wenn ja, dann schäm dich.
Fehlermeldungen blind wegzuwerfen und in garnichts oder nur einen Boolean zu konvertieren ... sowas gehört sich nicht.
* ordentiche Fehlermeldung
* oder wenigestens in ein Log schreiben

Was machst du denn außerhalb, bei einem False?

Delphi-Quellcode:
procedure TLogic.XMLEdit(xmlPfad: string; TargetPfad: string);
var WmDKntn: IXMLNode;
      XMLDcmnt: IXMLDocument;
      NwVlDateien, NwVlWF_Name, NwFlNm: string;
begin
      if TargetPfad[Length(TargetPfad)] <> '\then begin
         TargetPfad:= TargetPfad + '\';
      end;
      XMLDcmnt:= LoadXMLDocument(xmlPfad);
      NwFlNm:= ExtractFileName(StringReplace(XMLDcmnt.FileName,'.zip','.xml',[rfIgnoreCase, rfReplaceAll]));
      WmDKntn:= XMLDcmnt.DocumentElement;
      NwVlDateien:= StringReplace(WmDKntn.ChildNodes.FindNode('Dateien').ChildNodes.FindNode('Dateiname').NodeValue, '.zip','.xml',[rfIgnoreCase, rfReplaceAll]);
      NwVlWF_Name:= StringReplace(WmDKntn.ChildNodes.FindNode('WF_Name').ChildNodes.FindNode('WF_Name').NodeValue, '.zip','.xml',[rfIgnoreCase, rfReplaceAll]);
      WmDKntn.ChildNodes.FindNode('Dateien').ChildNodes.FindNode('Dateiname').NodeValue:= NwVlDateien;
      WmDKntn.ChildNodes.FindNode('WF_Name').ChildNodes.FindNode('WF_Name').NodeValue:= NwVlWF_Name;
      XMLDcmnt.SaveToFile(TargetPfad + NwVlDateien);
end;
Die Interfaces geben sich selbst frei
und die Fehlermeldung wird automatisch angezeigt.

Und beim Aufruf des XMLEdit kann man entweder abbrechen und Fehlermeldung anzeigen lassen
oder dort mit einem Try-Except die Sache entsprechend der Anforderungen dort behandeln. (alternativen Code ausführen lassen oder die Fehlermmeldung manuell anzeigen)
Ein Therapeut entspricht 1024 Gigapeut.
  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 10:52 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz