Zapis drzewa XML z pamięci do pliku

0

Cześć
Mam pytanie wczytuje plik xml, edytuje go jak go teraz zapisać najprościej, podgląd pliku mam w TreeView i Memo z tond wiem że zmiany zaszły w xml.

Moje wczytanie

public
XMLIntf: IXMLTransportType;;

procedure TForm1.Otwrz1Click(Sender: TObject);
var
i : integer;
begin
 OpenDialog1.FileName := '';
 OpenDialog1.InitialDir := extractfilepath(paramstr(0));

  if self.OpenDialog1.Execute then
  begin
    self.XMLDocument1.Active := true;
    self.XMLDocument1.loadFromfile(self.OpenDialog1.FileName);
    XMLIntf := GetTransport(self.XMLDocument1);
   
    Treeview1.Items.Clear;
    DomToTree(XMLIntf, nil);
    TreeView1.FullExpand;
  end;
end;


procedure TForm3.SaveFileClick(Sender: TObject);
 begin
  if SaveDialog1.Execute then
 ///
 end;
0

Saving and Loading Treeview using XML - zobacz na pierwszą odpowiedź w tym wątku - jest w niej gotowiec.

[...] podgląd pliku mam w TreeView i Memo z tond wiem że zmiany zaszły w xml.

Doprawdy? :|

0

Najprostszy zapis xml:

procedure TForm1.Button1Click(Sender: TObject);
begin
  if SaveDialog1.Execute then
  XMLDocument1.SaveToFile(SaveDialog1.FileName);
end;
0

Cześć
Nie chce zaczynać Nowego tematu mam mały problem

Próbuje dodawać kolejne Elementy wraz z ich pod elementami do XML
w skrócie xml przedstawia się tak

samochody
< samochod
id ="1"
name ="Volvo"
jpeg ="ścieżka do pliku" />

Chce wrzucić kilka za jednym razem więc mam listę samochód.name w Listboxie
Tu nie mam problemu. Problem natomiast mam z Id. Każde id musi być unikatowe czyli +1. Właśnie i jak to zrobić? I tu pytanie do Was: Jak wyszukać najwyższe Id już w istniejących elementach i dodając nowy samochód w nowym zrobić Id +1 Chciałem obejść problem i wczytałem sobie do ComboBoxa wszystkie Id. Miało być "coś" := ComboBox1.Items.Count; a dalej "coś" +1 ale zamotałem się strasznie.
Na razie to wygląda tak :


var
lNewSamochod: IXMLSamochodType;
  i: Integer;
  begin
  i:= 0;
  while ( i < ListBox1.Count) and  ( i < ListBox2.Count) 
  begin
    lNewSamochod := XMLIntf.Samochody.add;
    lNewSamochod .id         := ComboBox1.Items.Count +1 ;  // by każdy nowy wpis miał Id wyższe o jeden  
    lNewSamochod.name    := ListBox1.Items[i];
    lNewSamochod.jpeg      := Listbox2.Items[i]
   Inc(i);
  end;
end;

1 użytkowników online, w tym zalogowanych: 0, gości: 1