2013-08-29 1 views
0

저는 Borland Turbo C++ (Builder C++와 같지만 구성 요소는 적음)를 사용합니다.빌더 C++/Turbo C++ WebBrowser. 받은 HTML 코드에 액세스하는 방법

내가 Webbrowser1-> Navigate (MyURL)를 할 때 나는 요구 된 웹 사이트를 적절하게 받았다. 제 경우에는 텍스트 웹 사이트 일 뿐이며 html 코드도 아닙니다. 웹 브라우저 창에서 볼 수 있습니다.

받은 텍스트를 조작하여 문자 수를 계산하는 방법은 무엇입니까? 최고의 사례는 내가 그것을 안 주석으로 만들 수있는 경우입니다.

어떻게해야할지 모르겠다. 어떤 클래스를 사용합니까? 또는 어떤 유형으로 변환하려고합니까?

답변

1

먼저 myURL이로 이동합니다

void __fastcall TForm1::Button1Click(TObject *Sender) 
{ 
    WebBrowser1->Navigate(MyURL); 
} 

에 담기가에서 코드를 검색 OnDocumentComplete 이벤트 :

void __fastcall TForm1::WebBrowser1DocumentComplete(TObject *Sender, LPDISPATCH pDisp, 
      Variant *URL) 
{ 
    Variant document = WebBrowser1->Document; 
    Variant body = document.OlePropertyGet("body"); 
    Variant parentElement = body.OlePropertyGet("parentElement"); 
    AnsiString html = parentElement.OlePropertyGet("outerHTML"); 
    Memo1->Text = html; 
} 

또는 간단히 :

Memo1->Text = Variant(WebBrowser1->Document).OlePropertyGet("body").OlePropertyGet("parentElement").OlePropertyGet("outerHTML"); 

참고 단순히 HTTP 요청을 보낼 수 있습니다 TWebBrowser없이 응답 텍스트를 검색 할 수 있습니다.

+1

감사합니다. 그것은 작동합니다! – Gregorek

+0

더 나은 성능을 얻으려면'Variant' /'IDispatch' 대신 DOM 인터페이스를 직접 사용해야합니다 ('IHTMLDocument2','IHTMLElement' 등). –

관련 문제