html5读delphi数据,Delphi HTML解析器
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解析器相关推荐
- 非结构化数据与结构化数据提取---- BeautifulSoup4 解析器
CSS 选择器:BeautifulSoup4 和 lxml 一样,Beautiful Soup 也是一个HTML/XML的解析器,主要的功能也是如何解析和提取 HTML/XML 数据. lxml 只会 ...
- 【Android 逆向】使用 Python 解析 ELF 文件 ( Capstone 反汇编 ELF 文件中的机器码数据 | 创建反汇编解析器实例对象 | 设置汇编解析器显示细节 )
文章目录 一.创建 Capstone 反汇编解析器实例对象 二.设置 Cs 汇编解析器显示细节 一.创建 Capstone 反汇编解析器实例对象 使用 Capstone 反汇编框架 , 首先创建 Ca ...
- xgplayer.js 西瓜播放器 - 字节跳动团队出品的免费开源 HTML5 视频播放组件,内置解析器、也能节省流量
一个功能强大,符合国内视频播放业务的 web 视频播放组件,由西瓜视频技术团队官方出品. 关于西瓜播放器 西瓜播放器 (xgplayer.js) 不是一个看片软件,而是一个 Web 开发上的视频播放器 ...
- 高性能Java解析器实现过程详解
如果你没有指定数据或语言标准的或开源的Java解析器, 可能经常要用Java实现你自己的数据或语言解析器.或者,可能有很多解析器可选,但是要么太慢,要么太耗内存,或者没有你需要的特定功能.或者开源解析 ...
- java 解析器_高性能Java解析器实现过程详解
如果你没有指定数据或语言标准的或开源的Java解析器, 可能经常要用Java实现你自己的数据或语言解析器.或者,可能有很多解析器可选,但是要么太慢,要么太耗内存,或者没有你需要的特定功能.或者开源解析 ...
- php xml expat,PHP XML Expat 解析器
PHP XML Expat 解析器 内建的 Expat 解析器使在 PHP 中处理 XML 文档成为可能. XML 是什么? XML 用于描述数据,其焦点是数据是什么.XML 文件描述了数据的结构. ...
- java sax解析xml_在Java中使用DOM,SAX和StAX解析器解析XML
java sax解析xml 我碰巧通读了有关Java中XML解析和构建API的章节. 我试用了样本XML上的其他解析器. 然后,我想在我的博客上分享它,这样我就可以得到该代码的参考以及任何阅读此代码的 ...
- 在Java中使用DOM,SAX和StAX解析器解析XML
我碰巧通读了有关Java中的XML解析和构建API的章节. 我试用了样本XML上的其他解析器. 然后,我想在我的博客上分享它,这样我就可以参考该代码以及任何阅读此书的参考. 在本文中,我将在不同的解析 ...
- 解析器 java_Java高性能解析器实现思路及方法学习
当你必须自己实现一个解析器时,你对它的期望会有很多,包括性能良好.灵活.特性丰富.方便使用,以及便于维护等等.说到底,这也是你自己的代码.在本文中,我将为你介绍在Java中实现高性能解析器的一种方式, ...
- Java高性能解析器实现思路及方法
在某些情况下,你可能需要在Java中实现你自己的数据或语言解析器,也许是这种数据格式或语言缺乏标准的Java或开源解析器可以使用.或者虽然有现成的解析器实现,但它们要么太慢,要么太占内存,要么就是没有 ...
最新文章
- Spring之LoadTimeWeaver——一个需求引发的思考---转
- 浏览器阻挡cookies_解决WordPress登录提示”Cookies被阻止或者您的浏览器不支持”...
- 安装配置libmemcached
- java 飞行记录器_Java 11功能– Java飞行记录器
- mysqldatareader对象有多少个方法_血压的正常范围是多少?牢记这6个降压方法,有效地预防高血压...
- LeetCode003-无重复字符的最长子串(Length of longest substring)-Rust语言实现
- ARM联合创始人:若被英伟达收购 将是一场灾难
- java单元测试笔记
- vi编辑器编辑超大文件。
- 便宜又大碗!AI将画廊轻松搬到自家墙壁;用隐写术在图像中存储文件;免费书·算法高维鲁棒统计;关节式手部模型数据集;前沿论文 | ShowMeAI资讯日报
- 软件需求说明书/ 概要设计说明书/项目开发计划/详细设计说明书(说明要点及要点解释)
- 下载历史版本的英伟达显卡驱动
- python cartopy绘制中国区域(包含国界、省界、十段线以及海南诸岛)
- html5中required标签必填项
- celery redis mysql_GitHub - FJUT/gxgk-wechat-server: 校园微信公众号后端,使用 Python、Flask、Redis、MySQL、Celery...
- html5 3d背景墙,3D背景墙的价格怎样?3D背景墙的介绍?
- 用chrome按F12抓包 页面跳转POST一瞬间就闪没了
- 上进的凡凡,幸运数组,字符串魔法(easy)
- 通过数组指针给二维数组赋值
- MYSQL 根据身份证号找出年龄大于60岁的人