I download a URL with IdHTTP.Get, and I need to search the HTML tags and extract some data.
How I can convert the string that IdHTTP.Get returns into an IHTMLDocument2?
I download a URL with IdHTTP.Get, and I need to search the HTML tags and extract some data.
How I can convert the string that IdHTTP.Get returns into an IHTMLDocument2?
Try this one:
uses ... Variants, MSHTML, ActiveX; var Cache: string; V: OleVariant; Doc: IHTMLDocument2; begin ... Cache := IdHTTP.Get(url); Doc := coHTMLDocument.Create as IHTMLDocument2; // create IHTMLDocument2 instance V := VarArrayCreate([0,0], varVariant); V[0] := Cache; Doc.Write(PSafeArray(TVarData(v).VArray)); // write data from IdHTTP // Work with Doc end; I Googled this problem and I can find a good code for this:
Idoc := CreateComObject(Class_HTMLDOcument) as IHTMLDocument2; try IDoc.designMode := 'on'; while IDoc.readyState 'complete' do Application.ProcessMessages; v := VarArrayCreate([0, 0], VarVariant); v[0] := MyHTML; IDoc.Write(PSafeArray(System.TVarData(v).VArray)); IDoc.designMode := 'off'; while IDoc.readyState 'complete' do Application.ProcessMessages; ParseHTML(IDoc); finally IDoc := nil; end; Regards