- Код: Выделить всё
var XMLDoc : TXMLDocument;
XMLM : TMemoryStream;
ndDef : TDOMNOde;
iRow : integer;
begin
SynEdit3.Text:=PRJClass.FServerConfigFileText.Text;
tbKUDefense.BeginUpdate;
tbKUDefense.RowCount:=2;
tbKUDefense.Rows[1].Clear;
if PRJClass.ServerConfigFileName<>'' then begin
XMLM := TMemoryStream.Create;
XMLM.Clear;
SynEdit3.Lines.SaveToStream(XMLM);
ReadXMLFile(XMLDoc,XMLM);
//ReadXMLFile(XMLDoc,PRJClass.ServerConfigFileName);
XMLM.Free;
iRow:=0;
ndDef:=XMLDoc.DocumentElement;
ndDef:=ndDef.FindNode('defenses');
ndDef:=ndDef.FirstChild;
while Assigned(ndDef) do begin //цикл по защитам
// защиты //
if UTF8LowerCase(ndDef.NodeName)='defense' then begin
inc(iRow);
tbKUDefense.RowCount:=iRow+1;
tbKUDefense.Cells[0,iRow]:=GetAttribut(ndDef,'id','0');
tbKUDefense.Cells[1,iRow]:=GetAttribut(ndDef,'name','0');
end;
ndDef:=ndDef.NextSibling;
end;
ndDef:=nil;
XMLDoc.Free;
XMLDoc:=nil;
end;
tbKUDefense.EndUpdate(TRUE);
То есть из файла считывает нормально, а так ошибку выдает:
[img]
In 'stream:' (line 1 pos 1): Root element is missing
[/img]