Einzelnen Beitrag anzeigen

FlorianWolf

Registriert seit: 8. Okt 2008
4 Beiträge
 
#1

mehrere XML Dateien erstellen

  Alt 8. Okt 2008, 10:25
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?
  Mit Zitat antworten Zitat