Delphi 通过MSHTML实现一个HTML解析类

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Delphi 通过MSHTML实现一个HTML解析类

Delphi 通过MSHTML实现一个HTML解析类分类:Delphi编程

2010-01-05 09:14

400人阅读

评论(7)

收藏

举报

最近经常会模拟网页提交返回网页源码,然后获得网页中相应的元素,于是需要常常解析Html中相应的各种元素,网络是个好东西,搜索一番,就找到了

好几个Delphi版本的HtmlParser的类库,试着使用了几个,发现解析起来都不完整,或多或少的回出现一些问题!于是想到了如果界面上有一个浏

览器,我们可以通过WebBrowser的Document接口对网页元素进行操作,很是方便!但是模拟网页提交,界面上是不一定要出现

WebBrowser的,肯定有办法,不通过WebBrowser就直接

解析HTML的,那便是我不要WebBrowser这个外壳,只要他里面的

Document文档接口对象就能实现对Html的解析了,查找了一番MSDN,然后Google一下,果然可行,构建方法如下://创建

IHTMLDocument2接口

CoCreateInstance(CLASS_HTMLDocument, nil, CLSCTX_INPROC_SERVER, IID_IHTMLDocument2, FHtmlDoc);

接口创建好了之后就能够对文

档元素进行解析了,很是爽快!

结合了我自己的特有操作,我对Combobox,Table,Frame等一些网页元素做了相应的封装,实现

了一个HTMLParser,大致代码如下:

这里只给出声明,代

码请在最后下载

代码

(*

****************************************************

*)(*

得闲工作

*)(*

网页元素操作

类库

*)(*

*)(*

DxHtmlElement Unit

*)(*

Copyright(c) 2008-2010 不得

*)(*

email:appleak46@ QQ:75492895 *)(*

****************************************************

*)unit

DxHtmlElement;interfaceuses

Windows,sysUtils,Clipbrd,MSHTML,ActiveX,OleCtrls,Grap hics,TypInfo;{

Get EleMent Type

}function

IsSelectElement(eleElement: IHTMLElement): Boolean;function

IsPwdElement(eleElement: IHTMLElement): Boolean;function

IsTextElement(element: IHTMLElement):

boolean;function

IsTableElement(element: IHTMLElement):

Boolean;function

IsElementCollection(element: IHTMLElement): Boolean;function

IsChkElement(element: IHTMLElement):

boolean;function

IsRadioBtnElement(element: IHTMLElement): boolean;function

IsMemoElement(element: IHTMLElement):

boolean;function

IsFormElement(element: IHTMLElement):

boolean;function

IsIMGElement(element: IHTMLElement):

boolean;function

IsInIMGElement(element: IHTMLElement):

boolean;function

IsLabelElement(element: IHTMLElement):

boolean;function

IsLinkElement(element: IHTMLElement):

boolean;function

IsListElement(element: IHTMLElement): boolean;function IsControlElement(element: IHTMLElement):

boolean;function

IsObjectElement(element: IHTMLElement):

boolean;function

IsFrameElement(element: IHTMLElement):

boolean;function

IsInPutBtnElement(element: IHTMLElement): boolean;function

IsInHiddenElement(element: IHTMLElement): boolean;function

IsSubmitElement(element: IHTMLElement): boolean;{ Get ImgElement Data

}function

相关文档
最新文档