DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: iwithu
今日帖子: 23
在线用户: 8
导航: 论坛 -> DELPHI技术 斑竹:liumazi,sephil  
作者:
男 cenunus (cenunus) ★☆☆☆☆ -
普通会员
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,类似的几个查找元素的函数也都没有,不知如何解决,请大神帮助,谢谢!
----------------------------------------------
作者:
男 learndelphi (beside) ★☆☆☆☆ -
盒子活跃会员
2024/5/9 15:44:59
1楼: 如果用正则那?
----------------------------------------------
-
作者:
男 z_y_b_delphi (z_y_b_delphi) ★☆☆☆☆ -
普通会员
2024/5/10 9:39:36
2楼: IHTMLDocument3才可以getElementsByTagName
----------------------------------------------
-
作者:
男 z_y_b_delphi (z_y_b_delphi) ★☆☆☆☆ -
普通会员
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;
----------------------------------------------
-
作者:
男 cenunus (cenunus) ★☆☆☆☆ -
普通会员
2024/5/10 14:42:44
4楼: 我用了武稀松大神的HtmlParser搞定了,不过还是谢谢楼上!
----------------------------------------------
作者:
男 pcplayer (pcplayer) ★☆☆☆☆ -
普通会员
2024/5/10 16:45:51
5楼: 之前在 D7 时代,过 IHTMLDocument2.

看了2 楼的提示,打开 D11 的 MSHTML 来看,发现有 IHTMLDocument1..8

嗯,功能比一个 IHTMLDocument2 多了很多。
----------------------------------------------
-
作者:
男 homejun (homejun) ★☆☆☆☆ -
盒子活跃会员
2024/5/10 18:21:41
6楼: 转换到IHTMLDocument3接口再调用
----------------------------------------------
-delphi新资讯站 http://www.delphigear.cn
作者:
男 sail2000 (小帆工作室) ★☆☆☆☆ -
盒子活跃会员
2024/5/11 12:01:24
7楼: delphi上解析HTML最好的是: HTML Component Library,其次是 DIHtmlParser
----------------------------------------------
delphi 是兴趣,和工作无关,即使它倒闭。又不靠它 delphi 吃饭,怕甚?
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行54.6875毫秒 RSS