|
|
导航: |
论坛 -> DELPHI技术
斑竹:liumazi,sephil |
|
作者: |
|
2024/5/9 14:04:54 |
标题: |
请教如何从Html字符串中查找元素? |
浏览:318 |
|
加入我的收藏 |
楼主: |
我用如下代码 var I:Integer; Doc: IHTMLDocument2; HTMLElement: IHTMLElement; Elements: IHTMLElementCollection; Element: IHTMLElement; v: Variant; begin Doc := coHTMLDocument.Create as IHTMLDocument2; v := VarArrayCreate([0, 0], VarVariant); v[0] := Html; Doc.write(PSafeArray(System.TVarData(v).VArray)); Doc.designMode := 'off'; Doc.getElementsByTagName('a'); //此函数不存在 end; 网上搜索的都是如此,但是IHTMLDocument2中根本没有getElementsByTagName,类似的几个查找元素的函数也都没有,不知如何解决,请大神帮助,谢谢!
----------------------------------------------
|
作者: |
|
2024/5/9 15:44:59 |
1楼: |
如果用正则那?
----------------------------------------------
-
|
作者: |
|
2024/5/10 9:39:36 |
2楼: |
IHTMLDocument3才可以getElementsByTagName
----------------------------------------------
-
|
作者: |
|
2024/5/10 11:03:21 |
3楼: |
试试以下代码: var I:Integer; Doc: IHTMLDocument2; doc3:IHTMLDocument3; HTMLElement: IHTMLElement; Elements: IHTMLElementCollection; Element: IHTMLElement; v: Variant; begin Doc := coHTMLDocument.Create as IHTMLDocument2; Doc.designMode := 'off'; while not (Doc.readyState = 'complete') do begin Application.ProcessMessages; end; Doc.body.innerHTML:='这里是需要加载的网页源码'; Doc.QueryInterface(IID_IHTMLDocument3,doc3); doc3.getElementsByTagName('a'); ...... end;
----------------------------------------------
-
|
作者: |
|
2024/5/10 14:42:44 |
4楼: |
我用了武稀松大神的HtmlParser搞定了,不过还是谢谢楼上!
----------------------------------------------
|
作者: |
|
2024/5/10 16:45:51 |
5楼: |
之前在 D7 时代,过 IHTMLDocument2.
看了2 楼的提示,打开 D11 的 MSHTML 来看,发现有 IHTMLDocument1..8
嗯,功能比一个 IHTMLDocument2 多了很多。
----------------------------------------------
-
|
作者: |
|
2024/5/10 18:21:41 |
6楼: |
转换到IHTMLDocument3接口再调用
----------------------------------------------
-delphi新资讯站 http://www.delphigear.cn
|
作者: |
|
2024/5/11 12:01:24 |
7楼: |
delphi上解析HTML最好的是: HTML Component Library,其次是 DIHtmlParser
----------------------------------------------
delphi 是兴趣,和工作无关,即使它倒闭。又不靠它 delphi 吃饭,怕甚?
|
|