HtmlParser示例及对比说明

本文介绍了对原HtmlParser的修改,创建了HtmlParserEx,增加了如设置Attributes、移除属性、查找及遍历等功能。通过示例展示了如何使用新功能,如修改元素属性、删除元素、遍历查找等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

delphi html parser

代码是改自原wr960204的 HtmlParser ,因为自己的需求需要对 html 进行修改操作,但无奈只支持读取操作,所以在此基础上做了修改并命名为HtmlParserEx.pas与之区别。

IHtmlElement和THtmlElement的改变:

1、Attributes属性增加Set方法

2、TagName属性增加Set方法

3、增加Parent属性

4、增加RemoveAttr方法

5、增加Remove方法

6、增加RemoveChild方法

7、增加Find方法,此为SimpleCSSSelector的一个另名

8、_GetHtml不再直接附加FOrignal属性值,而是使用GetSelfHtml重新对修改后的元素进行赋值操作,并更新FOrignal的值

9、增加Text属性

IHtmlElementList和THtmlElementList的改变:

1、增加RemoveAll方法

2、增加Remove方法

3、增加Each方法

4、增加Text属性

修改后的新功能的一些使用法

IHtmlElement
EL.Attributes[‘class’] := ‘xxxx’;

 EL.TagName = 'a';

 EL.Remove; // 移除自己

 EL.RemoveChild(El2);

 El.Find('a');

IHtmlElementList
// 移除选择的元素
LHtml.Find(‘a’).RemoveAll;

// 查找并遍沥
// LHtml.Find(‘a’).Each(
procedure(AIndex: Integer; AEl: IHtmlElement)
begin
Writeln(‘Index=’, AIndex, ‘, href=’, AEl.Attributes[‘href’]);
end);

// 直接输出,仅选中的第一个元素
Writeln(LHtml.Find(‘title’).Text);

// 从文件加载示例
procedure Test;
var
LHtml: IHtmlElement;
LList: IHtmlElementList;
LStrStream: TStringStream;
begin
LStrStream := TStringStream.Create(’’, TEncoding.UTF8);
try
LStrStream.LoadFromFile(‘view-source_https___github.com_ying32_htmlparser.html’);
LHtml := ParserHTML(LStrStream.DataString);
if LHtml <> nil then
begin
LList := LHtml.SimpleCSSSelector(‘a’);
for LHtml in LList do
Writeln(‘url:’, lhtml.Attributes[‘href’]);
end;
finally
LStrStream.Free;
end;
end;

源代码下载

https://github.com/ying32/htmlparser

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值