加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Delphi HTML解析器

发布时间:2020-12-15 09:56:50 所属栏目:大数据 来源:网络整理
导读:htmlparser delphi html parser 代码是改自原wr960204的HtmlParser,因为自己的需求需要对html进行修改操作,但无奈只支持读取操作,所以在此基础上做了修改并命名为HtmlParserEx.pas与之区别。 修改记录 2016年11月23日 1、简单支持XPath,简单的吧,利用xp

htmlparser

delphi html parser

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

修改记录

2016年11月23日

1、简单支持XPath,简单的吧,利用xpath转css selector,嘿
xpath转换的代码改自python版本
另外对正则System.RegularExpressions.pas中TGroupCollection.GetItem进行了改进,没有找到命名组
且非PCRE_ERROR_NOSUBSTRING时返回空的,而不是抛出一个异常。暂时就简单粗爆的直接改吧,官方网站
上看到有人提过这个QC,不知道后面有没有解决。

IHtmlElement

LHtml.FindX('/html/head/title').Each(
    procedure(AIndex: Integer; AEl: IHtmlElement) begin Writeln('xpath index=',AIndex,',a=',AEl.Text);  
    end
  );

2016年11月15日

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属性
10、修改InnerText与Text属性增加write功能
11、增加AppedChild方法

IHtmlElementList和THtmlElementList的改变:
1、增加RemoveAll方法
2、增加Remove方法
3、增加Each方法
4、增加Text属性

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

IHtmlElement

// 修改属性
     EL.Attributes['class'] := 'xxxx';  
     // 修改标记 
     EL.TagName = 'a';  
     // 移除自己 
     EL.Remove;   
     // 移除子结点 
     EL.RemoveChild(El2);  
     // css选择器查找,简化用 
     El.Find('a');  
     // 附加一个新的元素 
     el2 := El.AppendChild('a');

IHtmlElementList

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

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

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

源代码下载

https://github.com/ying32/htmlparser

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读