![]() |
in XML reinschreiben...
Moin jetzt hab ich es geschaft XML auszulesen und in eine Datenbank zu speichern, nun will ich aber in eine schon bestehende XML-Datei reinschreiben. (von OpenOFfice)
Die ist folgendermaßen aufgebaut:
XML-Code:
:gruebel:
<block-list:block-list>
-<block-list:block block-list:abbreviated-name="(c)" block-list:name="©"/> -<block-list:block block-list:abbreviated-name="(r)" block-list:name="®"/> -<block-list:block block-list:abbreviated-name="Accesoir" block-list:name="Accesoire"/> Ich habe mir das folgendermaßen gedacht:
Delphi-Quellcode:
Aber so richtig weiter komm ich nicht...
procedure WriteOOAutoKorrekt(AOwner:TComponent);
var kn, knSequ : integer; knoten, element : IDOMNode; //atname, cardAtName//SequKnoten, //cardElement, value1, value2 : string; stream : TStream; XMLDoc : TXMLDocument; newChild, newNode : IDOMNode; begin XMLDoc := TXMLDocument.Create(AOwner); newChild.??? newChild.nodeName := 'neuerTest'; newNode.nodeValue := 'neuerTest222'; XMLDoc.LoadFromFile('c:\test.xml'); XMLDoc.DocumentElement.DOMNode.ChildNodes.length; XMLDoc.DocumentElement.DOMNode.insertBefore(newNode,newChild); XMLDoc.AddChild('test','test'); XMLDoc.SaveToFile('c:\test2.xml'); end; :wiejetzt: Wie gehts weiter wenn ich da einen neuen Eintrag reinschreiben will. danke für alle Gedanken euer Andreas PS: es geht darum die Autokorrektur von OpenOffice auszulesen und serverbasierend zu speichern. :stupid: |
ähm...
falls da keiner durchblickt, das ist nur son Sourceschnipsel...
damit man erkennt welche Objekte ich bisher beim auslesen verwendet habe *hüstel* hab das Netz abgegraßt nach Tutorials um zu schauen wie ich da wat schreibe, aber alles was ich fand wirkte hochkompliziert... :wall: Hab da sozusagen nix gecheggt... :pale: dabei will ich doch nur n Element schreiben :roll: der Andreas |
Tagebucheintrag
eine etwas andere Herangehensweise...
Delphi-Quellcode:
aber geht auch net :wall:
procedure XMLAdd;
var XMLDoc : TXMLDocument; iNode : XMLNode; begin XMLDoc := TXMLDocument.Create(nil); XMLDoc.LoadFromFile('c:\test.xml'); iNode := XMLDoc.CreateNode('test'); // AddChild('tree2xml'); iNode.AddChild('einitem'); iNode.Attributes['text'] := 'der text'; iNode.Attributes['imageIndex'] := 'einindex'; iNode.Attributes['stateIndex'] := 'einstatus'; //will leider DOMNode: XMLDoc.DocumentElement.DOMNode.appendChild(iNode); XMLDoc.SaveToFile('c:\neutest.xml'); XMLDoc := nil; end; :stupid: |
Re: in XML reinschreiben...
Hallo Andreas,
wenn block-list das Wurzel-Element des Dokuments ist, dann kannst du so einen zusätzlichen Knoten hinten anfügen:
Delphi-Quellcode:
Grüße vom marabu
procedure TDemoForm.AddButtonClick(Sender: TObject);
var xn: IXMLNode; begin with XMLDocument do begin xn := DocumentElement.AddChild('block-list:block', ''); xn.Attributes['block-list:abbreviated-name'] := 'mfg'; xn.Attributes['block-list:name'] := 'Mit freundlichen Grüßen'; end; end; |
uii...
Super,
DANKE !!! :bouncing4: :bounce1: :bounce2: :witch: :coder: :dp: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:49 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