Ich habe ein Problem beim erstellen einer
XML-Datei.
Das ganze Thema
XML ist für mich komplettes Neuland.
Ich habe die Anforderung aus meiner Software mehrere
XML-Dateien anzulegen mit immer dem gleichen Aufbau.
Den Aufbau habe ich. Eine Datei kann ich auch Fehlerfrei erstellen.
Wenn ich aber die gleiche Funktion noch einmal nutze um eine zweite Datei zu erstellen, bekomme ich eine Fehlermeldung:
"Only one top level element is allowed in an
XML document"
Delphi-Quellcode:
procedure TForm1.Button9Click(Sender: TObject);
var
root :IXMLNode;
node :IXMLNode;
unterknoten :IXMLNode;
cData :IDOMCDATASection;
x, y :integer;
begin
if SaveDialog1.Execute
then begin
XMLDocument1.Active := true;
XMLDocument1.Create(SaveDialog1.FileName);
XMLDocument1.Version := '
1.0';
XMLDocument1.Encoding := '
iso-8859-1';
root := XMLDocument1.AddChild('
Baugruppe');
//<---- Hier tritt beim erstellen der zweiten XML-Datei ein Fehler auf!
node := root.AddChild('
Part-ID');
cData := XMLDocument1.DOMDocument.createCDATASection(LabeledEdit1.Text);
node.DOMNode.appendChild(cData);
node := root.AddChild('
FA-ID');
node.Text := LabeledEdit2.Text;
node := root.AddChild('
Part-Nr');
node.Text := Vari.Pruefung.SoftwareVersion;
node := root.AddChild('
Strom');
node.Text := IntToStr(Vari.Pruefung.Strom);
XMLDocument1.SaveToFile(SaveDialog1.FileName);
end;
end;
Bei dem ersten Durchgang füge ich dem XMLDocument1 mit AddChild ja ein top level element zu. Soweit ich weiß, darf man das nur einmal in einer
XML Datei tun.
Was muss ich tun, damit ich, wenn ich die nächste Datei erstellen will wieder diesen Eintrag machen kann?
Muss ich das XMLDocument1 noch irgendwie schließen nach dem speichern?