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?