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=', AIndex, ', href=', AEl.Attributes['href']);

end);

// 直接输出,仅选中的第一个元素

Writeln(LHtml.Find('title').Text);

源代码下载

html5读delphi数据,Delphi HTML解析器相关推荐

  1. 非结构化数据与结构化数据提取---- BeautifulSoup4 解析器

    CSS 选择器:BeautifulSoup4 和 lxml 一样,Beautiful Soup 也是一个HTML/XML的解析器,主要的功能也是如何解析和提取 HTML/XML 数据. lxml 只会 ...

  2. 【Android 逆向】使用 Python 解析 ELF 文件 ( Capstone 反汇编 ELF 文件中的机器码数据 | 创建反汇编解析器实例对象 | 设置汇编解析器显示细节 )

    文章目录 一.创建 Capstone 反汇编解析器实例对象 二.设置 Cs 汇编解析器显示细节 一.创建 Capstone 反汇编解析器实例对象 使用 Capstone 反汇编框架 , 首先创建 Ca ...

  3. xgplayer.js 西瓜播放器 - 字节跳动团队出品的免费开源 HTML5 视频播放组件,内置解析器、也能节省流量

    一个功能强大,符合国内视频播放业务的 web 视频播放组件,由西瓜视频技术团队官方出品. 关于西瓜播放器 西瓜播放器 (xgplayer.js) 不是一个看片软件,而是一个 Web 开发上的视频播放器 ...

  4. 高性能Java解析器实现过程详解

    如果你没有指定数据或语言标准的或开源的Java解析器, 可能经常要用Java实现你自己的数据或语言解析器.或者,可能有很多解析器可选,但是要么太慢,要么太耗内存,或者没有你需要的特定功能.或者开源解析 ...

  5. java 解析器_高性能Java解析器实现过程详解

    如果你没有指定数据或语言标准的或开源的Java解析器, 可能经常要用Java实现你自己的数据或语言解析器.或者,可能有很多解析器可选,但是要么太慢,要么太耗内存,或者没有你需要的特定功能.或者开源解析 ...

  6. php xml expat,PHP XML Expat 解析器

    PHP XML Expat 解析器 内建的 Expat 解析器使在 PHP 中处理 XML 文档成为可能. XML 是什么? XML 用于描述数据,其焦点是数据是什么.XML 文件描述了数据的结构. ...

  7. java sax解析xml_在Java中使用DOM,SAX和StAX解析器解析XML

    java sax解析xml 我碰巧通读了有关Java中XML解析和构建API的章节. 我试用了样本XML上的其他解析器. 然后,我想在我的博客上分享它,这样我就可以得到该代码的参考以及任何阅读此代码的 ...

  8. 在Java中使用DOM,SAX和StAX解析器解析XML

    我碰巧通读了有关Java中的XML解析和构建API的章节. 我试用了样本XML上的其他解析器. 然后,我想在我的博客上分享它,这样我就可以参考该代码以及任何阅读此书的参考. 在本文中,我将在不同的解析 ...

  9. 解析器 java_Java高性能解析器实现思路及方法学习

    当你必须自己实现一个解析器时,你对它的期望会有很多,包括性能良好.灵活.特性丰富.方便使用,以及便于维护等等.说到底,这也是你自己的代码.在本文中,我将为你介绍在Java中实现高性能解析器的一种方式, ...

  10. Java高性能解析器实现思路及方法

    在某些情况下,你可能需要在Java中实现你自己的数据或语言解析器,也许是这种数据格式或语言缺乏标准的Java或开源解析器可以使用.或者虽然有现成的解析器实现,但它们要么太慢,要么太占内存,要么就是没有 ...

最新文章

  1. Spring之LoadTimeWeaver——一个需求引发的思考---转
  2. 浏览器阻挡cookies_解决WordPress登录提示”Cookies被阻止或者您的浏览器不支持”...
  3. 安装配置libmemcached
  4. java 飞行记录器_Java 11功能– Java飞行记录器
  5. mysqldatareader对象有多少个方法_血压的正常范围是多少?牢记这6个降压方法,有效地预防高血压...
  6. LeetCode003-无重复字符的最长子串(Length of longest substring)-Rust语言实现
  7. ARM联合创始人:若被英伟达收购 将是一场灾难
  8. java单元测试笔记
  9. vi编辑器编辑超大文件。
  10. 便宜又大碗!AI将画廊轻松搬到自家墙壁;用隐写术在图像中存储文件;免费书·算法高维鲁棒统计;关节式手部模型数据集;前沿论文 | ShowMeAI资讯日报
  11. 软件需求说明书/ 概要设计说明书/项目开发计划/详细设计说明书(说明要点及要点解释)
  12. 下载历史版本的英伟达显卡驱动
  13. python cartopy绘制中国区域(包含国界、省界、十段线以及海南诸岛)
  14. html5中required标签必填项
  15. celery redis mysql_GitHub - FJUT/gxgk-wechat-server: 校园微信公众号后端,使用 Python、Flask、Redis、MySQL、Celery...
  16. html5 3d背景墙,3D背景墙的价格怎样?3D背景墙的介绍?
  17. 用chrome按F12抓包 页面跳转POST一瞬间就闪没了
  18. 上进的凡凡,幸运数组,字符串魔法(easy)
  19. 通过数组指针给二维数组赋值
  20. MYSQL 根据身份证号找出年龄大于60岁的人

热门文章

  1. PyTorch学习基础知识二
  2. Linux 系统实现 SSH 连接的 3 种 方式
  3. Android编译时技术(二)ASM 基础使用之代码生成
  4. 统计用区划代码和城乡划分代码编制规则
  5. 阅读PDF乱码问题简便解决方法教程
  6. arduino秒退解决方法
  7. 高并发解决方案相关面试题
  8. 天正提示加载lisp_天正加载不了 - 卡饭网
  9. 知识图谱——关系抽取
  10. 全面|机房精密空调设计,看完你就明白了