Einzelnen Beitrag anzeigen

Alexander

Registriert seit: 28. Aug 2002
Ort: Oldenburg
3.513 Beiträge
 
Turbo Delphi für .NET
 
#9

Re: XMLSerializer: Verschachtelte XML-Dateien mit Arrays?

  Alt 5. Feb 2007, 16:01
Danke Robert. Aber so ganz habe ich das noch nicht verstanden.

Mal ein Ausschnitt so wie ich es bisher ohne CDATA gemacht habe. Gespeichert wird ein String und eine Arraylist von TFoo.
Delphi-Quellcode:
  TXmlData = class
  public
    test : String;
    [System.Xml.Serialization.XmlElementAttribute('Foo', TypeOf(TFoo), Form=System.Xml.Schema.XmlSchemaForm.Unqualified)]
    Foo : ArrayList;
  end;

procedure TSteuerdateiReader.saveData;
var
  Ser : XmlSerializer;
  Writer : StreamWriter;
begin
  Writer := StreamWriter.Create(XmlPath);
  Ser := XmlSerializer.Create(typeOf(TXmlData));
  try
    Ser.Serialize(Writer, data);
  finally
    Writer.Close;
    Writer.Free;
    Ser.Free;
  end;
end;

procedure TSteuerdateiReader.loadData;
var
  Ser : XmlSerializer;
  Reader : StreamReader;
begin
  Reader := StreamReader.Create(XmlPath);
  Ser := XmlSerializer.Create(typeOf(TXmlData));
  try
    data := Ser.Deserialize(Reader) as TXmlData;
  finally
    Reader.Close;
    Reader.Free;
    Ser.Free;
  end;
end;
Jetzt müsste ich deinen Code nehmen, einbinden und im Code String durch CData ersetzen und "schon" klappt es?
Das wäre ja einfach. Wäre, weil ich leider deinen Code nicht nach Delphi konvertiert bekomme. Vielleicht kannst du mir da noch helfen?
Wird beim Serialisieren WriteXml aufgerufen?

Eine Möglichkeit ähnlich der Serialisierung von ArrayListen o.ä. gibt es nicht, oder?
Alexander
  Mit Zitat antworten Zitat