Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   XML (https://www.delphipraxis.net/46-xml/)
-   -   Delphi XML Datei anlegen (https://www.delphipraxis.net/134579-xml-datei-anlegen.html)

Christian18 25. Mai 2009 10:32


XML Datei anlegen
 
Hallo,

ich möchte eine XML Datei auf meiner Festplatte legen. In der Hilfe hatte ich folgendes gefunden.
Delphi-Quellcode:
procedure TElementsShift.SavePositions();
  var Path: String;
      XMLCFG: TXMLDocument;
begin
  Path:=ExtractFilePath(Application.ExeName) + 'CFG\' + FForm.Name + '.cfg';

  XMLCFG:=TXMLDocument.Create(Path);
  try

  finally
    XMLCFG.Free();
  end;
end;
Das funktioniert leider nicht, es kommt der Fehler: Systemfehler -2146697210. Line: 0

Hat jemand ne Idee warum?

MfG Christian18

jaenicke 25. Mai 2009 10:40

Re: XML Datei anlegen
 
Kann es sein, dass die Datei direkt versucht wird zu laden? Denn das wäre für mich der Sinn einer Übergabe im Konstruktor oder was macht das?

Ich benutze das Interface IXmlDocument und habe damit keine Probleme. Ein Auszug aus einem Testprojekt:
Delphi-Quellcode:
var
  Test: IXMLDocument;
  TestNode: IXMLNode;
begin
  Test := NewXMLDocument();
  Test.Options := [doNodeAutoIndent];
  TestNode := Test.AddChild('test');
  TestNode.SetAttributeNS('xyz', 'namesp', 'valuexyz');
  TestNode.AddChild('ddd');
  Test.SaveToFile('test.xml');
Dafür musst du die Unit XmlIntf einbinden.

Christian18 25. Mai 2009 10:44

Re: XML Datei anlegen
 
Hallo,

und wo bekommt man dieses Interface her? Wenn ich dein code bei mir einfüge, sagt die IDE Undefinierter Bezeichner.

jaenicke 25. Mai 2009 10:44

Re: XML Datei anlegen
 
Zitat:

Zitat von jaenicke
Dafür musst du die Unit XmlIntf einbinden.


Christian18 25. Mai 2009 10:50

Re: XML Datei anlegen
 
ok, super funktioniert.

eine kurze frage noch.

diesen header erzeugt dein code:
<?xml version="1.0"?>

ich brauche aber diesen:
<?xml version="1.0" encoding="ISO-8859-1"?>

LG

jaenicke 25. Mai 2009 10:52

Re: XML Datei anlegen
 
Es gibt direkt die Eigenschaft Encoding (wie ich gerade schnell gesehen habe) ;-).
Delphi-Quellcode:
Test.Encoding := 'Whatever';
Das wird es wohl sein.

Christian18 25. Mai 2009 11:00

Re: XML Datei anlegen
 
super danke funktioniert.

himitsu 25. Mai 2009 12:10

Re: XML Datei anlegen
 
ansonsten beim Create den Dateinamen nicht angeben und erst zum Schluß mit .SaveToFile speichern

Delphi-Quellcode:
XMLCFG := TXMLDocument.Create(nil);
XMLCFG.Active    := True;
XMLCFG.Version   := '1.0';
XMLCFG.Encoding  := 'ISO-8859-1';
...
XMLCFG.SaveToFile(Dateiname);
XMLCFG.Free; // Free kann bei Verwendung von IXMLDocument
             // statt TXMLDocument, für XMLCFG, entfallen

jaenicke 25. Mai 2009 12:13

Re: XML Datei anlegen
 
Zitat:

Zitat von himitsu
ansonsten beim Create den Dateinamen nicht angeben

Also ist das so, das hatte ich ja vermutet, dass die Angabe des Dateinamens dort das Laden auslöst. (Wo die Datei ja noch nicht existiert.)

sirius 25. Mai 2009 12:39

Re: XML Datei anlegen
 
Zitat:

Zitat von himitsu
ansonsten beim Create den Dateinamen nicht angeben und erst zum Schluß mit .SaveToFile speichern

Delphi-Quellcode:
XMLCFG := TXMLDocument.Create(nil);
XMLCFG.Active    := True;
XMLCFG.Version   := '1.0';
XMLCFG.Encoding  := 'ISO-8859-1';
...
XMLCFG.SaveToFile(Dateiname);
XMLCFG.Free; // Free kann bei Verwendung von IXMLDocument,
             // statt TXMLDocument, für XMLCFG, entfallen

Und das funktioniert?


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:46 Uhr.
Seite 1 von 2  1 2      

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