跨平台的Html解析代码,甩掉包袱的选择

跨平台的Html解析代码
当时写了这个Html解析,可以跨Windows,MacOSX的平台.但是随着Delphi XE5的发布,发现这个代码在Android平台不能用了,因为Delphi在移动平台上的字符串字符索引下标变成0了,带来了很多问题.
于是把这个HTML解析器重写了一个版本,放弃对Delphi XE3以下版本的支持,轻装上阵.
因为也有传说易博龙会在以后某个时期放弃移动版本Delphi对指针的支持,所以这次重写的新版本里面完全去掉了指针的语法.
对外的接口基本没变,所以旧代码可以方便迁移上来.新的单元名叫HtmlParser_XE3UP.pas,很直接吧.同时如果是广大旧版本Delphi的朋友可以使用旧的HtmlParser.pas,两者接口完全相同.
新版本支持 Windows,MacOSX,iOS,Android 这些平台,但仅支持Delphi XE3以上的版本.
旧版本支持 Windows,MacOSX 这些平台,支持Delphi7以后的全部版本.

使用的例子:

var
  FNodes: IHtmlElement;
  l: IHtmlElementList;
  //把HTML代码解析到Element的树形结构
  FNodes := parserHtml(HTML代码);
  //使用CSS选择器的语法搜索, 返回是个符合条件结果的集合.CSS选择器语法如果不熟悉Web开发的可以看http://www.cnblogs.com/webblog/archive/2009/07/07/1518274.html
  l := FNodes.SimpleCSSSelector('div#header ~ div#main div#container [role]');
  

下载地址HtmlParser
SVN:http://code.google.com/p/delphi-html-parser/

此条目发表在Delphi, 未分类分类目录。将固定链接加入收藏夹。

跨平台的Html解析代码,甩掉包袱的选择》有183条回应

  1. pony6678说:

    貌似选择器这样会有问题
    div .classname [Attributename]

  2. pony6678说:

    div .classname [Attributename]

    忘记说了 Attributename 中有横杠 [absd-ssd]

    楼主看一下其他名称中有-会不会有问题

  3. 说:

    发现不能解析的bug:
    原因不清楚,碰到的这个页面http://forum.ea3w.com/ 用parserHtml进行解析就异常。 还发现一些别的。 数量不少。 我用的d7。

    • admin说:

      D7不支持Unicode使用起来不方便,版本和语法又太老.我现在已经决定放弃对D7的维护了.
      你给的页面用HtmlParser_XE3UP解析没问题的.

      • 说:

        谢谢你的回复。 从d7迁移到xe以上 对我来说改动太大。 而且 不知道这个能否支持xe5 . 2ccc上流传的那些xe5都有人说用不了 又没那么多钱买。。。 不知是否能出个100元 大牛你稍微看看看?? 太难我就迁移算了。

  4. 说:

    已在测试xe5 大牛不要耽误时间了。 这个类很好用。

  5. 说:

    我直接抑郁了。。。svn下来的代码 XE5新建立一下空的工程 ,用htmlpaser.pas ParserHTML(Memo1.Text); 程序不报错 。。只是直接卡住没反映。。换成HtmlParser_XE3UP.pas 同样是卡死。 但是 我编译你demo下的就没有问题。。 求帮助。谢谢。 我的环境:xp xe5精简。

  6. 匿名说:

    d2010运行demo

    div[class|=”main_wrapper2″]
    div[class^=”main_wrapper2″]
    div[class$=”main_wrapper2″]
    这几个选择器,选出的结果不对;这几个应该都能取出

  7. 匿名说:

    “ ”

  8. 匿名说:

    HTML解析能不能不解析 NOSCRIPT 里面的,他里面的自动过滤掉行不行?

  9. 匿名说:

    老大,有没有可用的Delphi的AMF解析类啊,或者想个办法把其它语言的解析类做个接口套过来啊(比如 JS,PHP之类的)

  10. 小菜说:

    大神你好,这个链接html使用下面的函数无法解析,帮忙看一下,谢谢
    S := ‘p#page a’;
    PageList := FNodes.SimpleCSSSelector(S);

    http://www.baidu.com/s?wd=%E6%85%A2%E6%80%A7%E4%B8%99%E8%82%9D%E8%83%BD%E6%B2%BB%E5%A5%BD%E5%90%97

  11. Pingback引用通告: 43ytr.icu/j/GPoAr

  12. Pingback引用通告: 2021

  13. Pingback引用通告: Èãðà ïðåñòîëîâ 8 ñåçîí

  14. Pingback引用通告: wwin-tv.com

  15. Pingback引用通告: Video

  16. Pingback引用通告: tureckie_serialy_na_russkom_jazyke

  17. Pingback引用通告: Ñìîòðåòü âñå ñåðèè ïîäðÿä

  18. Pingback引用通告: +1+

  19. Pingback引用通告: 1 2 3 4 5 6 7 8 9 10

  20. Pingback引用通告: Watch TV Shows

  21. Pingback引用通告: Kinokrad 2019 Kinokrad Hd

  22. Pingback引用通告: Kinokrad

  23. Pingback引用通告: filmy-kinokrad

  24. Pingback引用通告: kinokrad-2019

  25. Pingback引用通告: filmy-2019-kinokrad

  26. Pingback引用通告: serial

  27. Pingback引用通告: cerialest.ru

  28. Pingback引用通告: youtube2019.ru

  29. Pingback引用通告: dorama hdrezka

  30. Pingback引用通告: movies hdrezka

  31. Pingback引用通告: HDrezka

  32. Pingback引用通告: kinosmotretonline

  33. Pingback引用通告: LostFilm HD 720

  34. Pingback引用通告: trustedmdstorefy.com

  35. Pingback引用通告: bofilm ñåðèàë

  36. Pingback引用通告: bofilm

  37. Pingback引用通告: 1 seriya

  38. Pingback引用通告: Êîíñóëüòàöèÿ ïñèõîëîãà

  39. Pingback引用通告: topedstoreusa.com

  40. Pingback引用通告: hqcialismht.com

  41. Pingback引用通告: viagramdtrustser.com

  42. Pingback引用通告: rick and morty season 3

  43. Pingback引用通告: See-Season-1

  44. Pingback引用通告: Evil-Season-1

  45. Pingback引用通告: Evil-Season-2

  46. Pingback引用通告: Evil-Season-4

  47. Pingback引用通告: Dollface-Season-1

  48. Pingback引用通告: serial 2020

  49. Pingback引用通告: Dailymotion

  50. Pingback引用通告: Watch+movies+2020

  51. Pingback引用通告: serial-video-film-online

  52. Pingback引用通告: tvrv.ru

  53. Pingback引用通告: 1plus1tv

  54. Pingback引用通告: #1plus1

  55. Pingback引用通告: 1plus1

  56. Pingback引用通告: Watch Movies Online

  57. Pingback引用通告: Film 2020

  58. Pingback引用通告: Film 2021

  59. Pingback引用通告: watch online TV LIVE

  60. Pingback引用通告: parazity-oskar-2020

  61. Pingback引用通告: human design

  62. Pingback引用通告: DSmlka

  63. Pingback引用通告: viagra

  64. Pingback引用通告: viagra online

  65. Pingback引用通告: +

  66. Pingback引用通告: ¯jak Son³k

  67. Pingback引用通告: astrolog

  68. Pingback引用通告: film-kalashnikov-watch

  69. Pingback引用通告: generic cialis

  70. Pingback引用通告: cialis 20mg

  71. Pingback引用通告: kinoxaxru.ru

  72. Pingback引用通告: pobachennya u vegas

  73. Pingback引用通告: Proshanie so Stalinym

  74. Pingback引用通告: strelcov 2020

  75. Pingback引用通告: film t-34

  76. Pingback引用通告: online pharmacy

  77. Pingback引用通告: canadian pharmacy

  78. Pingback引用通告: Beograd film 2020

  79. Pingback引用通告: psiholog

  80. Pingback引用通告: psixolog

  81. Pingback引用通告: psyhelp_on_line

  82. Pingback引用通告: coronavirus

  83. Pingback引用通告: PSYCHOSOCIAL

  84. Pingback引用通告: rasstanovka hellinger

  85. Pingback引用通告: Cherekasi

  86. Pingback引用通告: film doktor_liza

  87. Pingback引用通告: djoker film

  88. Pingback引用通告: t.me/psyhell

  89. Pingback引用通告: Ïñèõîëîã îíëàéí

  90. Pingback引用通告: bitly.com

  91. Pingback引用通告: viagra 100mg

  92. Pingback引用通告: viagra price

  93. Pingback引用通告: viagra generic

  94. Pingback引用通告: viagra coupon

  95. Pingback引用通告: cheap viagra

  96. Pingback引用通告: cialis

  97. Pingback引用通告: cialis coupon

  98. Pingback引用通告: canadian pharmacy cialis

  99. Pingback引用通告: cialis 5mg

  100. Pingback引用通告: rlowcostmd.com

  101. Pingback引用通告: bitly

  102. Pingback引用通告: movies-tekstmovies-tekst

  103. Pingback引用通告: Zemlyane 2005 smotret onlajn

  104. Pingback引用通告: smotret onlajn besplatno v kachestve hd 1080

  105. Pingback引用通告: gusmeasu.com

  106. Pingback引用通告: movies-unhinged-film

  107. Pingback引用通告: malenkie-zhenshhiny-2020

  108. Pingback引用通告: dom 2

  109. Pingback引用通告: zoom-psykholog

  110. Pingback引用通告: zoom-viber-skype

  111. Pingback引用通告: Vratar Galaktiki Film, 2020

  112. Pingback引用通告: Vratar

  113. Pingback引用通告: Cherkassy 2020

  114. Pingback引用通告: chernobyl-hbo-2019-1-sezon

  115. Pingback引用通告: moskva-psiholog

  116. Pingback引用通告: batmanapollo.ru

  117. Pingback引用通告: 323

  118. Pingback引用通告: 525

  119. Pingback引用通告: dom2-ru

  120. Pingback引用通告: Tenet Online

  121. Pingback引用通告: psy psy psy psy

  122. Pingback引用通告: krsmi.ru

  123. Pingback引用通告: like-v.ru

  124. Pingback引用通告: MAMprEj

  125. Pingback引用通告: fgu0ygW

  126. Pingback引用通告: batmanapollo

  127. Pingback引用通告: tsoy

  128. Pingback引用通告: 44548

  129. Pingback引用通告: 44549

  130. Pingback引用通告: hod-korolevy-2020

  131. Pingback引用通告: HD

  132. Pingback引用通告: 158444

  133. Pingback引用通告: groznyy-serial-2020

  134. Pingback引用通告: 38QvPmk

  135. Pingback引用通告: bitly.com/doctor-strange-hd

  136. Pingback引用通告: bitly.com/eternals-online

  137. Pingback引用通告: bitly.com/maior-grom

  138. Pingback引用通告: matrica-film

  139. Pingback引用通告: dzhonuikfilm4

  140. Pingback引用通告: bitly.com/batman20212022

  141. Pingback引用通告: bitly.com/venom-2-smotret-onlajn

  142. Pingback引用通告: bitly.com/nevremyaumirat

  143. Pingback引用通告: bitly.com/kingsmankingsman

  144. Pingback引用通告: bitly.com/3zaklyatie3

  145. Pingback引用通告: bitly.com/1dreykfilm

  146. Pingback引用通告: bitly.com/topgunmavericktopgun

  147. Pingback引用通告: bitly.com/flash2022

  148. Pingback引用通告: bitly.com/fantasticheskietvari3

  149. Pingback引用通告: bitly.com/wonderwoman1984hd

  150. Pingback引用通告: 1444

  151. Pingback引用通告: cleantalkorg2.ru

  152. Pingback引用通告: 232dfsad

  153. Pingback引用通告: cleantalkorg2.ru/sitemap.xml

  154. Pingback引用通告: join vk

  155. Pingback引用通告: vk login

  156. Pingback引用通告: svaty—7—sezon

  157. Pingback引用通告: svaty 7 sezon

  158. Pingback引用通告: svaty 7

  159. Pingback引用通告: tiktok

  160. Pingback引用通告: 666

  161. Pingback引用通告: The Revenant

  162. Pingback引用通告: 00-tv.com

  163. Pingback引用通告: 2021

  164. Pingback引用通告: D4

  165. Pingback引用通告: 777

  166. Pingback引用通告: link

  167. Pingback引用通告: 4569987

  168. Pingback引用通告: news news news

  169. Pingback引用通告: psy

  170. Pingback引用通告: psy2022

  171. Pingback引用通告: projectio-freid

  172. Pingback引用通告: kinoteatrzarya.ru

  173. Pingback引用通告: topvideos

  174. Pingback引用通告: afisha-kinoteatrov.ru

  175. Pingback引用通告: site

  176. Pingback引用通告: top

  177. Pingback引用通告: soderzhanki-3-sezon-2021.online

评论已关闭。