Delphi 通过MSHTML实现一个HTML解析类
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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