博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Delphi 解析HTML
阅读量:4324 次
发布时间:2019-06-06

本文共 3194 字,大约阅读时间需要 10 分钟。

uses mshtml;

IHTMLEleMent.ID;

IHTMLEleMent.tagName;

IHTMLEleMent.title; elmt._className; elmt.getAttribute('anchor', 0);
procedure TForm1.btnphClick(Sender: TObject);var  Document: IHTMLDocument2;  FTableCollection, tempCoc: IHTMLElementCollection;  table: IHTMLTABLE;  TableRow: IHTMLTableRow;  elmt: IHTMLEleMent;  I, J, K: integer;  str: string;begin  Document := WebBrowser1.Document as IHTMLDocument2;  FTableCollection := Document.all;  FTableCollection.Length; //  FTableCollection.item(1, 0);  FTableCollection := Document.all.tags('table') as IHTMLElementCollection;  for I := 0 to FTableCollection.Length - 1 do  begin    table := FTableCollection.item(I, 0) as IHTMLTABLE;  //题数    for J := 0 to table.rows.Length - 1 do    begin      TableRow := (table.rows.item(J, 0) as IHTMLTableRow); //每道题信息      str := '';      for K := 0 to TableRow.cells.Length - 1 do      begin        elmt := TableRow.cells.item(K, 0) as IHTMLEleMent;        str := str + elmt.innerText + #9;      end;      str := StringReplace(str, ''#$D#$A'', '', [rfReplaceAll]);      Memo3.Lines.Add(str);      Memo3.Lines.Add('------------------------------------------');    end;  end;end;

  URL := 'http://bbs.csdn.net/forums/Delphi';

  WebBrowser1.Navigate(URL);

下面是一行tablerow的数据,可以分解出来,<td><td>之间是一个cell列。

如何解析第一列的href、class之间的3个数据呢,?、delphi7 滚动条颜色、VCL组件开发及应用

 

 

把td这一部分IHTMLEleMent当作IHTMLElementCollection解析就可以了,tagName,getAttribute('href',0),title,_className都可以获得正确的值,是6个集合元素。

tempCoc := elmt.all as IHTMLElementCollection;        if (tempCoc.Length = 6) then        begin          for q := 0 to tempCoc.Length - 1 do          begin            emt2 := tempCoc.item(q, 0) as IHTMLEleMent;            if emt2.tagName = 'STRONG' then              s2 := emt2.innerText            else if emt2.tagName = 'A' then            begin              s2 := emt2.getAttribute('href',0);              s2 := emt2.title;              s2 := emt2.innerText;            end            else if emt2.tagName = 'SPAN' then            begin              emt2.tagName;              emt2._className;              emt2.title;              emt2.innerText;            end;          end;        end;

 elmt: IHTMLEleMent;

  elmt := (WebBrowser1.Document as ihtmldocument3).getElementById('idbtn001');

getElementsByName

getElementById

getElementsByTagName

 

doc2: IHTMLDocument2;

doc3: IHTMLDocument3;

  doc2.forms.item('form1',0) as IHTMLFormElement;//取form1的表单

 

elmt := (WebBrowser1.Document as IHTMLDocument3).getElementById('divfirstID');//通过ID取得某个节点elmt := ((elmt.children as IHTMLElementCollection).item(0, 0)) as IHTMLEleMent;//子节点elmt := ((elmt.children as IHTMLElementCollection).item(0, 0)) as IHTMLEleMent;//子节点elmt := ((elmt.children as IHTMLElementCollection).item(0, 0)) as IHTMLEleMent;//子节点elmt := ((elmt.children as IHTMLElementCollection).item(2, 0)) as IHTMLEleMent;//子节点里的第3个子节点elmt := ((elmt.children as IHTMLElementCollection).item(0, 0)) as IHTMLEleMent;//子节点

 

转载于:https://www.cnblogs.com/cb168/p/3918237.html

你可能感兴趣的文章
阶段3 2.Spring_10.Spring中事务控制_7 spring基于注解的声明式事务控制
查看>>
阶段3 2.Spring_10.Spring中事务控制_6 spring基于XML的声明式事务控制-配置步骤
查看>>
阶段3 2.Spring_10.Spring中事务控制_9 spring编程式事务控制1-了解
查看>>
阶段3 2.Spring_10.Spring中事务控制_8 spring基于纯注解的声明式事务控制
查看>>
阶段3 3.SpringMVC·_01.SpringMVC概述及入门案例_07.入门案例中使用的组件介绍
查看>>
阶段3 3.SpringMVC·_02.参数绑定及自定义类型转换_1 请求参数绑定入门
查看>>
阶段3 3.SpringMVC·_02.参数绑定及自定义类型转换_2 请求参数绑定实体类型
查看>>
阶段3 3.SpringMVC·_02.参数绑定及自定义类型转换_4 请求参数绑定集合类型
查看>>
阶段3 3.SpringMVC·_02.参数绑定及自定义类型转换_3 配置解决中文乱码的过滤器
查看>>
阶段3 3.SpringMVC·_02.参数绑定及自定义类型转换_6 自定义类型转换器代码编写
查看>>
阶段3 3.SpringMVC·_02.参数绑定及自定义类型转换_5 自定义类型转换器演示异常
查看>>
阶段3 3.SpringMVC·_03.SpringMVC常用注解_1 RequestParam注解
查看>>
阶段3 3.SpringMVC·_02.参数绑定及自定义类型转换_7 获取Servlet原生的API
查看>>
阶段3 3.SpringMVC·_03.SpringMVC常用注解_2 RequestBody注解
查看>>
阶段3 3.SpringMVC·_03.SpringMVC常用注解_3 PathVariable注解
查看>>
阶段3 3.SpringMVC·_03.SpringMVC常用注解_4 HiddentHttpMethodFilter过滤器
查看>>
阶段3 3.SpringMVC·_03.SpringMVC常用注解_6 CookieValue注解
查看>>
阶段3 3.SpringMVC·_03.SpringMVC常用注解_5 RequestHeader注解
查看>>
阶段3 3.SpringMVC·_03.SpringMVC常用注解_7 ModelAttribute注解
查看>>
阶段3 3.SpringMVC·_04.SpringMVC返回值类型及响应数据类型_1 搭建环境
查看>>