WebBrowser1.Navigate() lo carica nella finestra del componente RAD utilizzando il componente IE integrato nel sistema operativo Windows. Quello che fai è rispondere a un callback (per il componente del browser, fare doppio clic sull'evento OnDownloadComplete) e salvarlo sul file in quella funzione. Frammenti di codice di lavoro:
procedure TMainForm.WB_SaveAs_HTML(WB : TWebBrowser; const FileName : string) ;
var
PersistStream: IPersistStreamInit;
Stream: IStream;
FileStream: TFileStream;
begin
if not Assigned(WB.Document) then
begin
Logg('Document not loaded!') ; //'Logg' adds a line to a log file.
Exit;
end;
PersistStream := WB.Document as IPersistStreamInit;
FileStream := TFileStream.Create(FileName, fmCreate) ;
try
Stream := TStreamAdapter.Create(FileStream, soReference) as IStream;
if Failed(PersistStream.Save(Stream, True)) then ShowMessage('SaveAs HTML fail!') ;
finally
FileStream.Free;
end;
end; (* WB_SaveAs_HTML *)
procedure TMainForm.WebBrowser1DownloadComplete(Sender: TObject);
begin
if (WebBrowser1.Document<>nil)AND NOT(WebBrowser1.busy) then begin
WB_SaveAs_HTML(WebBrowser1,'test.html');
//myStringList.loadFromFile('test.html'); //process it.
end;
end;
Nota che alcuni ("File") tipi MIME, come JSON danno una finestra di dialogo 'Salva con nome ...' in IE, che ferma la vostra lettura e richiede un intervento manuale.
fonte
2011-03-25 13:30:10
Non è semplicemente il contenuto del file foo.xml, che puoi caricare direttamente comunque? –
Penso che potrebbe essere un esempio. –
XML è il risultato della richiesta Http. Non è un file. – user82002