Einzelnen Beitrag anzeigen

Benutzerbild von mcmichael
mcmichael

Registriert seit: 5. Jun 2008
Ort: Bremen
79 Beiträge
 
Delphi 10.1 Berlin Professional
 
#5

Re: XML Problem beim Einlesen

  Alt 4. Okt 2009, 12:44
grandioser Trick, jetzt habe ich sogar den Sinn des "LoadFromXML" verstanden.
Zitat:
XMLDocument1.LoadFromXML('<?xml version="1.0" encoding="UTF-8" standalone="yes"?><WRT/>');
Mit dieser Prozedur kann ich jetzt also eine XML-Datei neu erstellen und
ein Element eintragen oder eine vorhandene um eines ergänzen.
Klappt hervorragend.

Delphi-Quellcode:
procedure TForm2.Button5Click(Sender: TObject); //add one XML
var i:integer;
    app_new:IXMLNode;
begin
try
  XMLDocument1.LoadFromFile('d:\test.xml');
except
  on E: EDOMParseError do
    begin
    XMLDocument1.LoadFromXML('<?xml version="1.0" encoding="UTF-8" standalone="yes"?><WRT/>');
    XMLDocument1.SaveToFile('d:\test.xml');
    end;
  end;

i:=XMLDocument1.DocumentElement.ChildNodes.Count+1;
app_new:=XMLDocument1.DocumentElement.AddChild('applicant_' + IntToStr(i));
app_new.AddChild('family_name');
app_new.AddChild('given_name');
app_new.AddChild('testdate');
app_new.AddChild('language');
app_new.ChildValues['family_name']:='Meyer'+ IntToStr(i);
app_new.ChildValues['given_name']:='Harald';
app_new.ChildValues['testdate']:='13.03.2009';
app_new.ChildValues['language']:='english';
XMLDocument1.SaveToFile('d:\Test.xml');
end;

Warum aber ist in der XML-Datei (im Gegensatz zu der in Einzelschritten erzeugten)
kein Linefeed? (und kein schönes Auto-Indent)

edit: Fehler gefunden, ich mußte bei der Neu-Erstellung noch mal    XMLDocument1.Options:=[doNodeAutoIndent]; einfügen.Seltsam eigentlich, das war in den Optionen im Objektinspektor eigentlich so eingestellt...
<?xml version="1.0" standalone="yes"?>
<WRT><applicant_1><family_name>Meyer1</family_name><given_name>Harald</given_name>.........


Großen Dank für die Hilfe!
  Mit Zitat antworten Zitat