Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   XML Datei schreiben (https://www.delphipraxis.net/29692-xml-datei-schreiben.html)

Alex_ITA01 13. Sep 2004 11:11


XML Datei schreiben
 
Hallo erstmal,
ich habe mir grade mal die TXMLDocument Kompo von Delphi (7Pro) angeguckt...
Ich würde gerne in Delphi bestimmte Daten eingeben und diese dann nach einem gewissen System in eine XML-Datei schreiben.Hat einer ein kleines Beispielprog oder Hilfe wie ich die Dateien mit dieser Kompo erstelle und schreibe?!
Danke
MFG Alex

Meflin 13. Sep 2004 11:14

Re: XML Datei schreiben
 
hi,
hier im forum gibts ein xml tutorial! einfach mal in tutorials und kurse schauen!

*MFG*

Alex_ITA01 13. Sep 2004 11:38

Re: XML Datei schreiben
 
danke...
ich habe mir das grade mal angeguckt aber entweder bin ich blind :wall: oder ich sehe nichts darüber wie man mit der Delphi Kompo eine Datei erstellt...
Ich habe es mal so versucht:

Delphi-Quellcode:
  XMLDocument1.FileName := 'C:\H.xml';
  MsgNode.Text := 'Hallo';
  XMLDocument1.AddChild(MsgNode.Text);
  XMLDocument1.SaveToFile('C:\H.xml');
Aktiv ist die Kompo...
Aber leider steht am Ende nix in der Datei und ein Fehler bekomme ich auch noch dazu...
Könnt ihr mir bitte helfen?!?!
MFG

Alex_ITA01 13. Sep 2004 14:16

Re: XML Datei schreiben
 
sorry wenn ich nerve, aber hat echt keiner eine Idee, wie ich eine komplett leere XML Datei "fülle"?!
danke alex

Luckie 13. Sep 2004 14:23

Re: XML Datei schreiben
 
Das steht doch alles in dem Tutorial. :gruebel:

Alex_ITA01 13. Sep 2004 15:29

Re: XML Datei schreiben
 
ich habe es jetzt endlich hinbekommen... es war eine programmzeile falsch :-)

nur habe ich jetzt eine xml-datei die so aussieht:

<Messages><Message><BOSS>DU</BOSS><WO>HIER</WO></Message></Messages>

ich verwende jetzt auch nicht die Kompo von Delphi sondern IXMLDOMDocument
weiß einer, wie ich das mit den zeilenumbrüchen und einrückungen mache?
options gibts zwar bei der kompo einzustellen aber hier bei IXMLDOMDocument leider nicht...
das steht auch nicht im Tutorial erklärt.
Hoffe ihr könnt mir helfen
MFG Alex

mischerr 13. Sep 2004 19:35

Re: XML Datei schreiben
 
Nein - da gibt's keine Patentlösung.
AFAIK gibt es nur einen Weg ein Indent einzubauen - das manuelle Einfügen via CreateTextNode!

Alex_ITA01 14. Sep 2004 07:23

Re: XML Datei schreiben
 
danke für den Tip mit dem createtextnode...
mein Source sieht wie folgt aus:

Delphi-Quellcode:
procedure TForm1.CreateXML;
var
  xmldoc : IXMLDOMDocument2;
  root   : IXMLDOMNode;
  elem   : IXMLDOMNode;
  Leer   : IXMLDOMNode;
begin
  xmldoc := CoDOMDocument40.Create;

  xmldoc.loadXML('<Messages></Messages>');
  if xmldoc.documentElement.nodeName <> 'Messages' then Exit;

  xmldoc.createTextNode(#13#10);

  root := xmldoc.createElement('Message01');   // neues Element erstellen <- in dem Fall Root element

  elem := xmldoc.createElement('BOSS');        // neues Element erstellen
  elem.text := 'DU';
  Root.appendChild(elem);                      // Element in RootElement hängen

  xmldoc.documentElement.appendChild(Root);

  xmldoc.save('C:\test.xml');
end;
Nur wie mache ich das mit dem CreateTextNode?
Kann mir da bitte jemand helfen??
Danke
Alex

MathiasSimmack 14. Sep 2004 09:23

Re: XML Datei schreiben
 
Du musst mal gucken was "CreateTextNode" als Ergebnis zurückliefert. Im Prinzip ist es nur eine Sonderform eines ganz normalen XML-Knotens. Eben für Texte. Und den hängst du wie jeden anderen Knoten an die gewünschte Stelle im Dokument ein. Und dadurch entsteht der Zeilenumbruch. Die Einrückung würdest du noch mit dem Tab #9 hinbekommen.

mischerr 14. Sep 2004 17:54

Re: XML Datei schreiben
 
Aus'm Kopf und ohne Gewähr...
z.B. Vor dem eigentlichem XMLNode.appendChild(...:
Code:
  XMLNode.appendChild(FXMLDoc.createTextNode(#13#10+' '));
FXMLDoc ist hier vom Typ IXMLDOMDocument2. Das in der Klammer ist die Einrückung - hier 2 Spaces.


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:10 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