D2007 Pro, TXMLDocument.
Google'am i nic :-( Jak wstawić komentarz do pliku XML? Fragment procedurki:
function TCategories.SaveToXML(Stream: TStream): Boolean;
var
XMLDoc : IXMLDocument;
CatNodes : IXMLNode;
I: Integer;
begin
Result := Stream <> nil;
if Result then
begin
XMLDoc := NewXMLDocument('1.0');
try
try
with XMLDoc do
begin
Active := True;
Options := Options + [doNodeAutoIndent];
NodeIndentStr := #9;
Encoding := 'UTF-8';
with AddChild('Root') do
begin
ChildValues['UploadTime'] := Now;
// itd.
Chcę wstawić przed 'Root' komentarz i nie mam pojęcia jak. Ktoś podpowie?
Jak sprawdzić czy dana wartość istnieje? Oczywiście chodzi nadal o XML. Zależy mi na sprawdzeniu kolejnych wartości, ale jeżeli jakiejś nie ma to i tak nalezy sprwadzać inne. "Ubieranie" każdego odczytu w try..except...end to chyba nie najlepszy pomysł. Robię na piechotę tak:
function TTopic.LoadFromXML(TopicNode: IXMLNode): Boolean;
var
Value: OleVariant;
begin
Result := Assigned(TopicNode);
if Result then
with TopicNode do
try
Value := ChildValues['Title'];
if not VarIsNull(Value) then FTitle := Value;
Value := ChildValues['Link'];
if not VarIsNull(Value) then Link := Value;
except
Result := False;
end;
end;
Nie ma tu sprawdzania typów (dla zmiennych innych niż string, ale to teraz nieistotne), i w tym przykładzie są tylko dwa odczyty. Pytanie - jak powinno się czytać "bezpiecznie" wartości (ChildValues) zakładając, że ich trochę jest...?
Pozdrawiam,
Jacek