我们经常会将一些数据写入HTML页面中,以便使用。例如:<input type="hidden" name="RoadPointsArray" id="LanLonPoints" value="" />,通过JavaScript得到的一些结果暂时放入id为LanLonPoints的value属性中,然后我们要在MFC中访问这个网页中的数据并进行一些处理,这时就需要得到网页的DOM来获取它们的属性值。
具体方法如下(贴出完整代码):
m_WebBrowser是WebBrowser控件的关联变量,同时在头文件中要加上#include <MsHTML.h>以包含那些接口
void CDemoDlg::OnBnClickedButtonGetwebdata()
{
CString allPointData;
IDispatch *pDisp = m_WebBrowser.get_Document();
IHTMLDocument2* pDocument;
IHTMLElementCollection* pCollection;
pDisp->QueryInterface(IID_IHTMLDocument2,(void**)&pDocument);
HRESULT hr;
hr = pDocument->get_all(&pCollection);
if( hr == S_OK )
{
long celem;
hr = pCollection->get_length(&celem); //得到所有节点的个数用以遍历
if( hr == S_OK )
{
VARIANT varIndex, var;
for ( int i = 0; i < celem; i++ )
{
varIndex.vt = VT_UINT;
varIndex.lVal =