Entwickler-Ecke
Dateizugriff - record in xml speichern
alex_id - Fr 16.01.04 01:45
Titel: record in xml speichern
hallo ...
also ich hab folgendes Problem :
ich möchte einen "record" in eine xml datei speichern ... diese xml datei so vor dem speichern neu erstellt bzw der Inhalt gelöscht werden ...
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:
| procedure saveToXml; Var data : IXMLDOMNodeList; mainNode, subNode: IXMLDOMNode; i,j, length : Integer; Begin Form1.xmlDoc := newXMLDocument; Form1.xmlDoc := CoDomDocument40.Create;
For i:=1 to anz do Begin mainNode := Form1.xmlDoc.createElement('data');
subNode := Form1.xmlDoc.createElement('id'); subNode.text := IntToStr(i); mainNode.appendChild(subNode);
subNode := Form1.xmlDoc.createElement('name'); subNode.text := objLiteral[i].name; mainNode.appendChild(subNode); end; Form1.xmlDoc.save('test.xml'); end; |
so wie ich es hier mache funktioniert es nicht ... bekomme immer eine leere Datei ....
Was mach ich falsch ???
Delete - Fr 16.01.04 09:16
Kurz gesagt: du erzeugst zwar einen Knoten ("mainNode"), hängst diesen aber nicht ins XML-Dokument ("xmldoc") ein. Schau mal, bei "subNode" machst du doch folgendes:
| Zitat: |
Delphi-Quelltext 1: 2: 3: 4: 5: 6:
| subNode := Form1.xmlDoc.createElement('id'); subNode.text := IntToStr(i);
mainNode.appendChild(subNode); | |
Normalerweise müsstest du das gleiche auch mit "mainNode" machen, bspw:
Delphi-Quelltext
1:
| xmldoc.appendChild(mainNode); |
Aber - wenn du es versuchst, wirst du bei deinem bisherigen Ansatz wahrscheinlich von einer neuen Fehlermeldung überrascht werden. Deine XML-Datei würde (wenn es möglich wäre!) nämlich so aussehen:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| <data> <id>1</id> <name>Weiß nicht</name> </data> <data> <id>2</id> <name>Weiß ich immer noch nicht</name> </data> |
Was stimmt hier wohl nicht? Wenn du´s probierst, kannst du auch gern die Fehlermeldung von Delphi zitieren. ;)
alex_id - Fr 16.01.04 15:46
jetzt wo du es sagst ... das ich das selber nicht gesehen habe ...
und natürlich fehlt dann noch am Anfang dieser XML Datei folgendes :
danke noch mal ...habe es zwar noch nicht getestet aber dürfte ja funktionieren ...
:wink:
Delete - Fr 16.01.04 16:47
Nee, das habe ich nicht gemeint. ;)
Ich wollte darauf hinaus, dass du nach meinem o.g. Beispielcode
nicht vorgehen
darfst! Wenn du innerhalb der Schleife noch
Delphi-Quelltext
1:
| xmldoc.appendChild(mainNode); |
ergänzen würdest, dann käme die Fehlermeldung, dass es im XML-Dokument nur
einen Hauptknoten geben darf. Und wenn du den Befehl aus der Schleife rausziehst, dann gehen alle zuvor zugewiesenen IDs und Namen verloren. Musst du mal ausprobieren, dann weißt du, was ich meine.
Der Header
ist in dem Zusammenhang uninteressant.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!