Entwickler-Ecke

Sonstiges (Delphi) - XML Datei schreiben


Alex_ITA01 - Mo 13.09.04 14:30
Titel: 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

Folgendes habe ich schon versucht nur es geht nicht.


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
procedure TForm1.Button1Click(Sender: TObject);
var
  root : IXMLNode;
  elem : IXMLNode;
begin
  root := XMLDocument1.CreateElement('Firma','L');
  elem := XMLDocument1.CreateElement('Mitarbeiter','H');
  elem.Text := 'Hallo';
  root.AddChild(elem.Text);
  XMLDocument1.DocumentElement.AddChild(root.Text);


{  XMLDocument1.FileName := 'C:\H.xml';
  MsgNode.Text := 'Hallo';
  XMLDocument1.AddChild(MsgNode.Text);   }

  XMLDocument1.SaveToFile('C:\H.xml');
end;


thommy f - Di 14.09.04 22:37

Bin mir nicht sicher ob zwischen XML-Dateien und HTML-Dateien große Unterschiede bestehen, aber wenn nicht, würd ich´s einfach mit Textfiles probieren,

AsignFile, reset, rewrite writeln closeFile sollten dafür brauchbare Schlagworte sein.

Wenn ich mich täusche, bitte ich um Entschuldigung, hab hier schon so viel Hilfe bekommen, daß ich auch mal versuche zu Helfen.


Alex_ITA01 - Mi 15.09.04 09:04

Danke für deine Hilfe
Ich habe es mittlerweile schon super hinbekommen, das ich XML-Dateien schreibe und auch daraus lesen kann.Textfiles hätten mich nicht weiter gebracht...Aber trotzdem Danke


Christian S. - Mi 15.09.04 10:47

Dann poste doch bitte Deine Lösung, damit andere auch etwas davon haben! :-)


Alex_ITA01 - Mi 15.09.04 10:58

sorry war in gedanken schon wieder woanders
Hier der source:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
procedure TForm1.CreateXML;
var
  xmldoc  : IXMLDOMDocument2;
  root    : IXMLDOMNode;
  elem    : IXMLDOMNode;
  Leer    : IXMLDOMText;
begin
  xmldoc := CoDOMDocument40.Create;

  xmldoc.loadXML('<Messages></Messages>');

  if xmldoc.documentElement.nodeName <> 'Messages' then Exit;

  { Message1 }
  Leer := xmldoc.createTextNode(#13#10#9);
  xmldoc.firstChild.appendChild(Leer);

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

  Leer := xmldoc.createTextNode(#13#10#9#9);
  root.appendChild(Leer);

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

  Leer := xmldoc.createTextNode(#13#10#9);
  root.appendChild(Leer);

  xmldoc.documentElement.appendChild(Root);

  Leer := xmldoc.createTextNode(#13#10);
  xmldoc.documentElement.appendChild(Leer);

  { Speichern }
  xmldoc.save('C:\test.xml');
end;


Achtung!!!
Einbindung der MSXML2_TLB notwendig ansonsten gehts net
MFG Alex