WebBrowser1.Navigate() lo carga en la ventana del componente RAD utilizando el componente integrado de IE en el sistema operativo Windows. Lo que hace es responder a una devolución de llamada (para el componente del navegador, hacer doble clic en el evento OnDownloadComplete) y guardarlo en el archivo de esa función. Fragmentos de código de trabajo:
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;
en cuenta que algunos tipos MIME ("Archivo"), tales como JSON dan un cuadro de diálogo 'Guardar como ...' en el IE, que para su lectura y requiere intervención manual.
¿No es simplemente el contenido del archivo foo.xml, que puede cargar directamente de todos modos? –
Creo que eso podría ser un ejemplo. –
XML es el resultado de la solicitud Http. No es un archivo. – user82002