CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  HTML/XML

有一段HTML文本如何载入HTMLDocument2进行解析?

楼主anlun(伦)2006-06-01 17:48:15 在 VC/MFC / HTML/XML 提问

CComPtr<IHTMLDocument>pDoc;  
  CComPtr<IHTMLDocument2>pDoc2;  
  bstr=NULL;  
  CComPtr<IHTMLElement>pElement;  
  ::OleInitialize(NULL);    
  HRESULT   hr=pDoc.CoCreateInstance(__uuidof(HTMLDocument),   NULL,  
  CLSCTX_INPROC_SERVER);  
  if(!SUCCEEDED(hr))      
  {      
  AfxMessageBox("無法創建HTML對象,請檢查是否安裝了MS   XML運行庫!");      
  }  
  hr==pDoc->QueryInterface(IID_IHTMLDocument2,(LPVOID       *)&pDoc2);  
  if(!SUCCEEDED(hr))      
  {      
  AfxMessageBox("派生IHTMLDocument2失败!");      
  }  
  pDoc2->get_body(&pElement);//获得的   pElement为空要不可以  
  pElement->put_innerHTML(bstr)//载入自己的内容bstr 问题点数:100、回复次数:9Top

1 楼jacklzw88(不可爱咯)回复于 2006-06-01 17:56:42 得分 0

HTML文本载入HTMLDocument2进行解析?    
  你要实现的功能是?Top

2 楼anlun(伦)回复于 2006-06-01 19:41:57 得分 0

提取自己感兴趣的信息Top

3 楼lion_wing(凤之焚-业与情的纠缠,死而复生的蜕变!)回复于 2006-06-01 21:30:24 得分 0

把文本装入HTMLDocument2好像不太可能。  
  你可以用正则表达式进行分析。Top

4 楼jacklzw88(不可爱咯)回复于 2006-06-02 09:25:26 得分 0

那你可以看看杨老师的文章  
  http://www.vckbase.com/document/viewdoc/?id=1446Top

5 楼sunmz_wjxy(孙大圣)回复于 2006-06-13 14:22:56 得分 0

个人感觉杨老师的这篇文章写得还不错.  
  楼主可以看一下.Top

6 楼msstbc()回复于 2006-06-19 07:51:08 得分 0

不知道楼主的问题解决了没有,我也遇到了相同的问题啊。  
   
  杨老师的文章看了,可是,怎么都实现不了用对字符串的操作。Top

7 楼seasol(海子@CSDN助手:http://www.cuteie.com/other.asp)回复于 2006-06-20 11:46:16 得分 60

建立CComPtr<IHTMLDocument2>pDoc2;就不抄了。  
  此时,pDoc2指向的文档是空的,get_body肯定返回空元素。  
  这时,可以open打开一个空文档,然后通过write将字符串写入文档,最后close,关闭文档。  
  如下:  
  //open文档  
  CComVariant   vName="_self";  
  CComVariant   vEmpty;  
  hr=pDoc2->open(L"about:blank",vName,vEmpty,vEmpty,NULL);  
   
  //构造参数,准备write  
  LPCWSTR   szwTest=L"<p>这是一个测试</p>";  
  BSTR   bstr   =   SysAllocString(szwTest);  
   
  VARIANT   *param;  
  SAFEARRAY   *sfArray;  
   
  //   Creates   a   new   one-dimensional   array  
  sfArray   =   SafeArrayCreateVector(VT_VARIANT,   0,   1);  
   
  hr   =   SafeArrayAccessData(sfArray,(LPVOID*)   &   param);  
  param->vt   =   VT_BSTR;  
  param->bstrVal   =   bstr;  
  hr   =   SafeArrayUnaccessData(sfArray);  
   
  //write文档  
  hr=pDoc2->write(sfArray);  
  //close文档  
  hr=pDoc2->close();  
   
  ///////////////以下检测是否写入成功。  
  pDoc2->get_body(&pElement);//  
  CComBSTR   bstrTest;  
  pElement->get_innerHTML(&bstrTest);  
   
   
  =======================================  
   愤怒以愚蠢开始,以后悔告终。——毕达哥拉斯  
   CSDN助手 签名走马灯Top

8 楼goodboyws(深夜不眠者(VCMVP))回复于 2006-07-05 14:35:18 得分 40

#include   <windows.h>  
  #define   INITGUID  
  #include   <initguid.h>  
  #include   <exdisp.h>  
  #include   <shlguid.h>  
  #include   <memory.h>  
  #include   <shlobj.h>  
   
    HRESULT   hr;  
   
        IWebBrowser2*   pWebBrowser   =   NULL;  
     
        if   (FAILED(OleInitialize(NULL)))  
        {  
              return;  
        }  
   
            //   Instantiate   a   browser  
        if   (FAILED(hr   =   CoCreateInstance(CLSID_InternetExplorer,  
              NULL,   CLSCTX_SERVER,   IID_IWebBrowser2,  
                                          (LPVOID*)&pWebBrowser)))  
        {  
              goto   Error;  
        }  
   
        //   Show   the   browser,   and   navigate   to   the   special   location  
        //   represented   by   the   pidl  
        hr   =   pWebBrowser->put_Visible(VARIANT_TRUE);  
   
  IDispatch*   pDocDisp   =   NULL;  
  hr   =   pWebBrowser->get_Document(&pDocDisp);  
   
  if   (pDocDisp)  
  {  
   
   
  IHTMLDocument2*   pDoc   =   NULL;  
  hr   =   pDocDisp->QueryInterface(IID_IHTMLDocument2,   reinterpret_cast<void   **>(&pDoc));  
   
  IHTMLElement*   pElement   =   NULL;  
  hr   =   pDoc->get_body(&pElement);  
            CString   strHtmlText   =   lpData;//这里传入你要解析的文本  
                                      BSTR   bstrHTMLText   =   strHtmlText.AllocSysString();  
          hr   =   pElement   ->put_outerHTML(&bstrHTMLText);Top

9 楼Viper()回复于 2007-02-27 11:41:31 得分 0

markTop

相关问题

关键词

得分解答快速导航

  • 帖主:anlun
  • seasol
  • goodboyws

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo