1

IHTMLDocument2 インターフェイスを使用して (get_body メンバー関数を呼び出して)、ドキュメントの HTML 本文を取得する方法を知っています。

しかし、どうすれば頭を手に入れることができますか?IHTMLDocument2 インターフェイスにそのような関数はありませんか?

4

1 に答える 1

4
    CComPtr<IHTMLDocument2> htmlDocument;
    CComPtr<IHTMLElementCollection> elementCollection;

    htmlDocument->get_all(&elementCollection);
    for (long i=0;i<numberOfElements;i++)
    {
        _variant_t index = i;
        CComPtr<IHTMLElement> htmlElem;
        CComPtr<IDispatch> htmlElemDisp;
        hResult = elementCollection->item( index,index ,(IDispatch **) &htmlElemDisp );
        if (FAILED(hResult) || (!(htmlElemDisp)))
        {
            continue;
        }
        hResult = htmlElemDisp->QueryInterface( IID_IHTMLElement ,(void **) &htmlElem);
        if (FAILED(hResult) || (!(htmlElem)))
        {
            continue;
        }
        hResult = htmlElem->get_tagName(&buffer);

        if (FAILED(hResult) || (!(buffer)))
        {
            continue;
        }
        if (_wcsicmp(buffer,L"HEAD")==0) 
        { 
         // your code here
        }
}

IHTMLDocument2* htmlDocumentまた、の代わりに使用することもできますCComPtr<IHTMLDocument2> htmlDocument。主なアイデアは、ドキュメント内のすべての要素を取得し、それらを繰り返して、tagNameHEADを持つ要素を見つけることです。お役に立てれば。

于 2011-12-09T11:51:08.073 に答える