Zitat:
Wenn man also nicht zwingend
XML benötigt, ist das via StringList immer einfacher gewesen
also dagegen ist es schon noch etwas komplizierter, aber grad deswegen wird standardmäßig beim Erstellen die Grundstrucktur der
XML schonmal erstellt
und man gleich loslegen
dieses für je das gleiche Ergebnis
Delphi-Quellcode:
XML := TXMLDocument.Create(
nil);
XML.Active := True;
XML.Version := '
1.0';
XML.StandAlone := '
yes';
XML.Encoding := '
UTF-8';
XML.Options := [doNodeAutoIndent];
XML.AddChild('
xml');
Node :=
XML.DocumentElement.AddChild('
Node1');
Node.Text := '
Text';
XML.SaveToFile('
test.xml');
XML.Free;
// gut, das .Free kann man sich sparren, wenn man auf IXMLDocument umsteigt
XML := TXMLFile.Create(
nil);
Node :=
XML.RootNode.Nodes.Add('
Node1');
Node.Data := '
Text';
XML.SaveToFile('
test.xml');
XML.Free;
// oder gleich so ...
XML := TXMLFile.Create(
nil);
XML.RootNode.Nodes['
Node1'].Data := '
Text';
XML.SaveToFile('
test.xml');
XML.Free;
bzw:
Delphi-Quellcode:
XML := TXMLFile.Create(
nil);
XML.RootNode.Nodes['
Node1\Node2'].Data := '
Text 1';
XML.RootNode.Nodes['
Node1\Node3'].Data := '
Text 2';
XML.RootNode.Nodes['
Node4'].Data := '
Text 3';
XML.SaveToFile('
test.xml');
XML.Free;
für
XML-Code:
<?
xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<xml>
<Node1>
<Node2>Text 1</Node2>
<Node3>Text 2</Node3>
</Node1>
<Node4>Text 3</Node4>
</
xml>
per Standard werden (bis auf Kommentare) alle Steuer-Tags (ala <?...?> , <!...> und <![CDATA[...]]> ) rausgefiltert und (bis auf die ungefilterten NF-Funktionen) im Baum nicht aufgelistet. (siehe
XML.Options)
ja und wenn es wirklich einfach sein soll ... nja, ist quasi eine INI im
XML-Format
Delphi-Quellcode:
Var Ini: TXMLIniFile;
Ini := TXMLIniFile.Create('myOptions.xml');
Try
Ini.WriteString('Section', 'Ident 1', S);
Finally
Ini.Free;
End;
XML-Code:
<?
xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<ini>
<section name="Section">
<ident name="Ident 1">irgendein String</ident>
</section>
</ini>
hab auch grad 'nen Fehler beim AutoUpdate der
XML-Ini entdeckt (kleine
Exception beim .Free)
und gleich noch eine Parameterprüfung dort mit eingebaut
wird beim nächsten Update mit hochgeladen